1

一旦在一个蓝月亮,我们在初始化缓存时从我们的 Azure Web 应用程序中得到一个异常。

错误消息指出Failed to start monitoring changes to 'D:\home\site'。重新部署解决了这个问题。我们正在使用MvcDonutCaching,但我不知道这是否相关。

有没有人遇到过类似的问题,也许是我们如何解决这个问题的建议?

System.Web.HttpException (0x80070035):无法开始监视对“D:\home\site”的更改。在 System.Web.FileChangesMonitor.FindDirectoryMonitor(String dir, Boolean addIfNotFound, Boolean throwOnError) at System.Web.FileChangesMonitor.StartMonitoringPath(String alias, FileChangeEventHandler callback, FileAttributesData& fad) 在 System.Web.Caching.CacheDependency.Init(Boolean isPublic, String[] filenamesArg, String[] cachekeysArg, CacheDependency dependency, DateTime utcStart) at System.Web.Caching.CacheDependency..ctor(String filename, DateTime start) at System.Web.Hosting.MapPathBasedVirtualPathProvider.CacheLookupOrInsert(String virtualPath, Boolean isFile ) 在 System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func2 valueFactory) 在 System.Web.Mvc.BuildManagerViewEngine.FileExists(ControllerContext controllerContext, String virtualPath) 在 System.Web.WebPages.DefaultDisplayMode.GetDisplayInfo(HttpContextBase httpContext, String virtualPath, Func 2 virtualPathExists) at System.Web.WebPages.DisplayModeProvider.GetDisplayInfoForVirtualPath(String virtualPath, HttpContextBase httpContext, Func2 virtualPathExists, IDisplayMode currentDisplayMode, Boolean requireConsistentDisplayMode) 在系统。 Web.Mvc.VirtualPathProviderViewEngine.GetPathFromGeneralName(ControllerContext controllerContext, List1 locations, String name, String controllerName, String areaName, String cacheKey, String[]& searchedLocations) at System.Web.Mvc.VirtualPathProviderViewEngine.FindView(ControllerContext controllerContext, String viewName, String masterName, Boolean useCache) at System.Web.Mvc.ViewEngineCollection.<>c__DisplayClass6.<FindView>b__5(IViewEngine e) at System.Web.Mvc.ViewEngineCollection.Find(Func2 在 System.Web.Mvc.ViewResult.FindView(ControllerContext context) 在 System.Web.Mvc.ViewEngineCollection.FindView(ControllerContext controllerContext, String viewName, String masterName) 在 System.Web.Mvc.ViewResultBase.FindView(ControllerContext context) 的查找,布尔 trackSearchedPaths) System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) 在 System.Web.Mvc.Controller.b__1d 的 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) 的 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__1e(IAsyncResult asyncResult) 的(ControllerContext 上下文) System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid 的(IAsyncResult asyncResult,ExecuteCoreState innerState)1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) 在 System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) 在 System.Web.Mvc.MvcHandler.b__5(IAsyncResult asyncResult, ProcessRequestState innerState) 在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid `1.CallEndDelegate(IAsyncResult asyncResult) 在 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) 在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep (IExecutionStep 步骤,Boolean& completedSynchronously)

4

1 回答 1

1

它是一个临时存储驱动器,因此不应用于存储任何需要始终存在的东西。或许,MvcDonutCaching 需要考虑 D 盘暂时不可用的问题?如果是这样,请联系开发团队与他们核实。

同时,这里有一些有用的文章:

我的磁盘 D 中的数据在哪里:

更改 Azure VM 中的临时驱动器并将 D: 用于持久数据磁盘

希望有帮助!

于 2016-06-06T16:03:12.217 回答