Custom UIUrl is causing error

Vote:
 

I have an EPiServer 11 site. I customized the uiurl and this had been working for several months. Recently however, it has stopped working. I get the following error in the windows event log when I browse directly to the uiurl:

Exception information:
Exception type: HttpException
Exception message: Directory 'C:\Projects\myprojectname\src\MyProject\cutomuiurl\Shell\Views\Shared' does not exist. Failed to start monitoring file changes.
at System.Web.FileChangesMonitor.FindDirectoryMonitor(String dir, Boolean addIfNotFound, Boolean throwOnError)
at System.Web.FileChangesMonitor.StartMonitoringPath(String alias, FileChangeEventHandler callback, FileAttributesData& fad)
at System.Web.Caching.CacheDependency.Init(Boolean isPublic, String[] filenamesArg, String[] cachekeysArg, CacheDependency dependency, DateTime utcStart)
at System.Web.Hosting.MapPathBasedVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.ZipArchiveVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.ZipArchiveVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.ZipArchiveVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.ZipArchiveVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.ZipArchiveVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.ZipArchiveVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.ZipArchiveVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.ZipArchiveVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.ZipArchiveVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.ZipArchiveVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.ZipArchiveVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.ZipArchiveVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.ZipArchiveVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.ZipArchiveVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.ZipArchiveVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.ZipArchiveVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.VirtualPathNonUnifiedProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.VirtualPathNonUnifiedProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at EPiServer.Web.Hosting.VirtualPathNonUnifiedProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
at System.Web.ResponseDependencyList.CreateCacheDependency(CacheDependencyType dependencyType, CacheDependency dependency)
at System.Web.HttpResponse.CreateCacheDependencyForResponse()
at System.Web.Caching.OutputCacheModule.OnLeave(Object source, EventArgs eventArgs)
at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

That directory is virtual, so I am not sure how/why it would be able to find it or not find it. And also why this was working but has stopped working.

My config:


 


 
   
   
   
     
     
     
   

 

 
 
   
     
   

 

 
   
   
     
     
     
     
     
     
     
   

 



 
   
     
     
     

 


 
 
   
     
       
     

   

   
   
   
   
   
   
   
   
   
   
   
 

Ethan

#197423
Oct 02, 2018 16:33
Vote:
 

Hi Ethan,

From looking at the config, I notice you've not shown the <virtualPathProviders> section in <episerver.framework>. Has that been updated to look something like this?

    <virtualPathProviders>
      <clear />
      <add name="ProtectedModules" virtualPath="~/cutomuiurl/" physicalPath="Modules\_Protected" type="EPiServer.Web.Hosting.VirtualPathNonUnifiedProvider, EPiServer.Framework.AspNet" />
    </virtualPathProviders>

Beyond that I'm assuming that your protectedModules rootPath value in the config above is meant to be "~/customuiurl/" as well?

#197492
Oct 04, 2018 10:41
Vote:
 

Paul - 

I did have the UiUrl correctly set there.

It turns out that the problem was caching. I was explicitly setting the page output cache. I was setting it on the OnResultExecuted method of the PageContextActionFilter (From the Alloy template). It seems that this action filter gets called even in the CMS. So, I removed it and made a separate filter that I then explicitly call on my pages only.

Thanks

Ethan

#197501
Oct 04, 2018 17:07
This topic was created over six months ago and has been resolved. If you have a similar question, please create a new topic and refer to this one.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.