Error on manual sync

Jul 24, 2012 at 9:36 PM

When I attempt to manually sync I get the following error:

The file /_catalogs/masterpage/v4.master does not exist. 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.IO.FileNotFoundException: The file /_catalogs/masterpage/v4.master does not exist.

Source Error: 
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 

[FileNotFoundException: The file /_catalogs/masterpage/v4.master does not exist.]   Microsoft.SharePoint.ApplicationRuntime.SPRequestModuleData.GetWebPartPageData(HttpContext context, String path, Boolean throwIfFileNotFound) +23690398   Microsoft.SharePoint.ApplicationRuntime.SPVirtualFile.GetVirtualPathProviderCacheKey(String virtualPath) +68   Microsoft.SharePoint.ApplicationRuntime.SPVirtualPathProvider.GetCacheKey(String virtualPath) +67   System.Web.Compilation.BuildManager.GetCacheKeyFromVirtualPath(VirtualPath virtualPath, Boolean& keyFromVPP) +38   System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +82   System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +116   System.Web.UI.MasterPage.CreateMaster(TemplateControl owner, HttpContext context, VirtualPath masterPageFile, IDictionary contentTemplateCollection) +175   System.Web.UI.Page.get_Master() +69   System.Web.UI.Page.ApplyMasterPage() +18   System.Web.UI.Page.PerformPreInit() +58   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1256

I've verified that v4.master file exists and is listed in the MasterPage gallery.  Drawing a blank here.  A recap my installation steps:

Using the SP2010 Management Shell:

  • Add-SPSolution -literalpath c:\temp\SharePointRsync.wsp
  • Enable-SPFeature -Identity "Sync List" -url http://localhost:6666/sites

Then I activated the feature at the sitecollection level.

I also added the safecontrol line to web.config for good measure.

Both "Sync List Timer Management" and "File Sync Control" were added to the sitecollection.

I created a "Test Sync" in the File Sync Control list.

The Initial Sync List does execute as scheduled, but the "Test Sync" fails.  If I attempt to manually sync, I get the above error.






Any ideas?

Jul 24, 2012 at 9:55 PM
Edited Jul 24, 2012 at 9:56 PM

Most likely the error is being thrown by the layouts page that handles the trigger of the manual sync job.  There is a token in that page that points to a masterpage:

<%@ Page Language="C#" MasterPageFile="~/_layouts/application.master" %>

That I am apparently overriding when the page loads (who knows why, its been a while since I wrote this) on the preinit method.  This is setting the masterpageurl to an absolute path to the site root (and my site is on port 80) so if you don't have a site collection at the root this error will throw.

I would remove the preinit method and rebuild to solve the issue.  Alternatively you could create a site collection at the root.  It may be possible that SharePoint is assuming port 80 for this root as well but I would need to test that.

Jul 24, 2012 at 10:32 PM
Edited Jul 24, 2012 at 10:43 PM

Ok, I created a webapplication and sitecollection on port 80 and the manual sync page is properly loading.  Thanks for the assist.