我的Azure网站关闭时删除访问被拒绝(删除缓存项)

时间:2013-03-23 00:04:06

标签: asp.net caching azure azure-web-sites asp.net-cache

我的应用在Azure 网站非网络角色,请排除网络角色特定答案!)上运行良好,但有时我的日志中出现以下错误:

System.UnauthorizedAccessException: Access to the path 'C:\DWASFiles\Sites\myAzureWebSiteNameHere\VirtualDirectory0\site\wwwroot' is denied.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileSystemEnumerableIterator`1.CommonInit()
   at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost)
   at System.IO.Directory.EnumerateFiles(String path)
   at System.Web.WebPages.Deployment.WebPagesDeployment.AppRootContainsWebPagesFile(String path)
   at System.Web.WebPages.Deployment.PreApplicationStartCode.OnChanged(String key, Object value, CacheItemRemovedReason reason)
   at System.Web.Caching.CacheEntry.CallCacheItemRemovedCallback(CacheItemRemovedCallback callback, CacheItemRemovedReason reason)

这发生在网站重新启动之前(由Azure而不是我,可能是在包含该网站的VM上进行维护操作)。所以我得出结论,它发生在“关闭”操作期间,当系统尝试清除缓存时。

我正在使用这样的Asp.net缓存:HttpContext.Current.Cache[myKey] = something我有定义任何特定的回调,例如CacheItemRemovedCallback。上面的callstack确认错误是在系统回调上。

它似乎是Azure特定的(甚至可能特定于Azure网站),因为内部部署服务器上的同一网站从未出现过这种错误。

您知道如何防止此错误发生吗?谢谢!

0 个答案:

没有答案