Ошибка "Отказано в доступе" при закрытии моего веб-сайта Azure (удаление элементов кэша)

Мое приложение хорошо работает на веб-сайтах 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, а не я, вероятно, для операции обслуживания на виртуальной машине, содержащей сайт). Поэтому я пришел к выводу, что это произошло во время операции "выключения", когда система пытается очистить кэш.

Я использую кэш Asp.net следующим образом: HttpContext.Current.Cache[myKey] = something и я не определил какой-либо конкретный обратный вызов, как CacheItemRemovedCallback, Вышеупомянутый стек вызовов подтверждает, что ошибка находится в системном обратном вызове.

Похоже, что он специфичен для Azure (и, возможно, даже специфичен для веб-сайтов Azure), потому что на одном и том же веб-сайте на локальном сервере такой ошибки не было.

Знаете ли вы, как предотвратить возникновение этой ошибки? Спасибо!

0 ответов

Другие вопросы по тегам