1

I have a CMS environment cms.<domain> and a CD environment www.<domain> All works fine when not logged into Sitecore, however when I am logged in to Sitecore on the CMS environment, then try load a page on the CD environment, it crashes with the following:

6688 10:55:22 ERROR Application error. Exception: System.Web.HttpException Message: The file '/sitecore/shell/client/Sitecore/ExperienceEditor/PageEditbar/LoadingIndicator.ascx' does not exist. Source: System.Web at System.Web.UI.Util.CheckVirtualFileExists(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) at System.Web.Compilation.BuildManager.GetVPathBuildResult(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean ensureIsUpToDate) at System.Web.Compilation.BuildManager.GetVPathBuildResult(HttpContext context, VirtualPath virtualPath) at System.Web.UI.TemplateControl.LoadControl(VirtualPath virtualPath) at Sitecore.ExperienceEditor.Utils.WebUtility.RenderLoadingIndicator(HtmlTextWriter output) at Sitecore.ExperienceEditor.Speak.Ribbon.PageExtender.RibbonWebControl.DoRender(HtmlTextWriter output) at Sitecore.Web.UI.WebControl.RenderAsText() at Sitecore.Mvc.ExperienceEditor.Pipelines.RenderPageExtenders.SpeakRibbon.RenderPageEditorSpeakExtender.Render(TextWriter writer) at Sitecore.Mvc.ExperienceEditor.Pipelines.RenderPageExtenders.RenderPageExtendersProcessor.Process(RenderPageExtendersArgs args) at (Object , Object[] ) at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) at Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain) at Sitecore.Mvc.Pipelines.PipelineService.RunPipeline[TArgs](String pipelineName, TArgs args) at Sitecore.Mvc.ExperienceEditor.PageExtenderResponseFilter.GetExtendersHtml() at Sitecore.Mvc.ExperienceEditor.PageExtenderResponseFilter.get_ExtendersHtml() at Sitecore.Mvc.ExperienceEditor.Pipelines.Request.RequestEnd.AddPageExtenders.Process(RequestEndArgs args) at (Object , Object[] ) at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) at Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain) at Sitecore.Mvc.Pipelines.PipelineService.RunPipeline[TArgs](String pipelineName, TArgs args) at Sitecore.Mvc.Routing.RouteHttpHandler.EndProcessRequest(IAsyncResult result) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

6688 10:56:23 INFO Cache created: 'IsUserInRoleCache' (max size: unrestricted) 6688 10:56:23 INFO Trying to load XML configuration /App_Config/Security/GlobalRoles.config 6688 10:56:24 INFO AUDIT (sitecore\Anonymous): Logout 6688 10:56:24 WARN Protected page accessed with no current user 6688 10:56:24 INFO AUDIT (sitecore\Anonymous): Logout 6688 10:56:24 WARN Protected page accessed with no current user 6688 10:56:24 ERROR Application error. Exception: System.Web.HttpException Message: Cannot redirect after HTTP headers have been sent. Source: System.Web at System.Web.HttpResponse.Redirect(String url, Boolean endResponse, Boolean permanent) at Sitecore.Shell.Web.ShellPage.IsLoggedIn(Boolean returnAfterLogin) at Sitecore.ExperienceEditor.Speak.Ribbon.PageExtender.RibbonWebControl.DoRender(HtmlTextWriter output) at Sitecore.Web.UI.WebControl.RenderAsText() at Sitecore.Mvc.ExperienceEditor.Pipelines.RenderPageExtenders.SpeakRibbon.RenderPageEditorSpeakExtender.Render(TextWriter writer) at Sitecore.Mvc.ExperienceEditor.Pipelines.RenderPageExtenders.RenderPageExtendersProcessor.Process(RenderPageExtendersArgs args) at (Object , Object[] ) at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) at Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain) at Sitecore.Mvc.Pipelines.PipelineService.RunPipeline[TArgs](String pipelineName, TArgs args) at Sitecore.Mvc.ExperienceEditor.PageExtenderResponseFilter.GetExtendersHtml() at Sitecore.Mvc.ExperienceEditor.PageExtenderResponseFilter.get_ExtendersHtml() at Sitecore.Mvc.ExperienceEditor.Pipelines.Request.RequestEnd.AddPageExtenders.Process(RequestEndArgs args) at (Object , Object[] ) at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) at Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain) at Sitecore.Mvc.Pipelines.PipelineService.RunPipeline[TArgs](String pipelineName, TArgs args) at Sitecore.Mvc.Routing.RouteHttpHandler.EndProcessRequest(IAsyncResult result) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

7520 10:56:24 WARN Request is redirected to document not found page. Requested url: /sitecore/login?returnUrl=%2F, User: sitecore\Anonymous, Website: login

I assume, this is because, on the CD environment, I have removed the Experience Editor files as per the Sitecore config CD recommendations. Is there any config setting, I am missing for it to not try and load the Experience Editor on the CD environment?

The domain on httpCookies and authentication/forms are the same value on both CM and CD.

Sitecore 8.2.1

  • When you say “environment”- are the two sites in entirely different servers? Different websites within IIS in the same server? How do you have sessions configured? – jrap Feb 12 '18 at 2:27
  • Different servers. So I think since on the asp.net cookie the domain is the same, the CD server thinks that we are logged in. The CMS uses in proc session state and the CD uses mssql session state. – Mark Gibbons Feb 12 '18 at 6:11
  • Can you post what are the cookies from your CM call response and what are the cookies in your CD call request? – Marek Musielak Feb 12 '18 at 6:38
  • They are identical on both. The normal asp.net session and auth cookies, SC_ANALYTICS_GLOBAL_COOKIE, site#sc_mode, shell#lang=en; sc_expview=0; sc_fv=0.0.0; sc_rte_shuser=..., sitecore_webedit_ribbon=1; sc_last_page_mode_command=webedit:preview, __RequestVerificationToken. Changing the cookie domain isn't an option as the session cookies need to be shared across all subdomains as you can log in as a virtual user. – Mark Gibbons Feb 12 '18 at 7:20
  • You have set the domain attribute on httpCookies and/or authentication/forms in web.config? Is it the same value on both CM and CD? – jammykam Feb 12 '18 at 15:37
0

Original Sitecore 8.2.1 Answer (please use updated Sitecore 8.2.6 answer below)

I went back over the CD config guide and found that I had somehow missed disabling Sitecore.ExperienceEditor.Speak.Requests.config and Sitecore.ExperienceExplorer.Speak.Requests.config which did the trick.

Sitecore 8.2.6 Answer: I ran into this issue again after updating sitecore. They have updated the CD config guide to now include these files on CD so this is no longer a solution. However simply disabling edit on CD servers solves the issue.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.