私のアプリは Azure Web サイト( Web ロールではありません。Webロール固有の回答を除外してください !) で正常に動作していますが、ログに次のエラーが表示されることがあります。
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)
これは、サイトが再起動される直前に発生しました (おそらく、サイトを含む VM のメンテナンス操作のために、私ではなく Azure によって)。そのため、システムがキャッシュをクリアしようとしたときに、「シャットダウン」操作中に発生したと結論付けました。
私はこのようにAsp.netキャッシュを使用しています:HttpContext.Current.Cache[myKey] = something
そして、のような特定のコールバックを定義していませんCacheItemRemovedCallback
。上記のコールスタックは、エラーがシステム コールバックにあることを確認します。
これは、オンプレミス サーバー上の同じ Web サイトでこの種のエラーが発生したことがないため、Azure 固有 (およびおそらく Azure Web サイト固有) のようです。
このエラーの発生を防ぐ方法を知っていますか? ありがとう !