This was the error:
ERROR Umbraco.Web.UmbracoApplication - [Thread 36] An unhandled exception occurred
System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.TypeInitializationException: The type initializer for 'umbraco.presentation.cache.dispatcher' threw an exception. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at umbraco.presentation.cache.dispatcher..cctor()
--- End of inner exception stack trace ---
at umbraco.presentation.cache.dispatcher.Refresh(Guid factoryGuid, Int32 Id)
at umbraco.library.UpdateDocumentCache(Document doc)
at umbraco.cms.presentation.editContent.Publish(Object sender, EventArgs e)
at System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e)
at System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.HandleError(Exception e)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest()
at System.Web.UI.Page.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
This seemed to be an error with the distributed call from server 1 to server 2 in the load balancer.
- First I thought it might be a rewrite rule in \config\UrlRewriting.config - it wasn't
- Then I recycled the app pools - this didn't help
- I then made sure I could access the Umbraco web service on both servers:
- http://serverip1/umbraco/webservices/CacheRefresher.asmx - worked
- http://serverip2/umbraco/webservices/CacheRefresher.asmx - worked
- I disabled distributed calls and then Publish worked, but this wasn't a solution
- Finally the solution was due to incorrect config in \config\umbracoSettings.config. I somehow didn't have the <user>0</user> tag:
<distributedCall enable="true">
<user>0</user>
<servers>
<server>serverip1</server>
<server>serverip2</server>
</servers>
</distributedCall>
These are some of the very useful posts I read, but config was my solution:
No comments:
Post a Comment