私の Web アプリでは、次の呼び出しはアプリケーションの起動時に true を返し、後で何らかの理由で false を返します。
HostingEnvironment.VirtualPathProvider.DirectoryExists("~/some/existing/directory")
フォルダーが存在し、同時に次のコードは常に正しく true を返します。
System.IO.Directory.Exists(HostingEnvironment.MapPath("~/some/existing/directory"))
VirtualPathProvider の動作を変更するために何が影響するのかわかりません。VirtualPathProvider はアプリケーションの起動時にカスタム実装でオーバーライドされますが、それは DirectoryExists() をオーバーライドせず、実際に常に呼び出されるメソッドはSystem.Web.Hosting.MapPathBasedVirtualPathProvider
.
Process Monitorで確認したところ、発生するファイルシステム操作は正しい結果と間違った結果で同じです。
何が壊れる可能性があるか考えている人はいますかDirectoryExists()
(ところで、同じことが起こりFileExists()
ます)?