IIS7 で問題なく動作する ASP.NET 4.0 Web アプリケーション (mvc ではなく Web フォーム。asp.net ルーティングは使用されていません) があります。IIS6 で実行して に移動しようとするとhttp://localhost/MyApp/
、次の例外が発生します。
File does not exist.
System.Web.HttpException
at System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response) (+0 IL, +2509040 JIT)
at System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context, String overrideVirtualPath) (+54 IL, +198 JIT)
at System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state) (+263 IL, +347 JIT)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() (+214 IL, +8967220 JIT)
at System.Web.HttpApplication.ExecuteStep(HttpApplication.IExecutionStep step, Boolean& completedSynchronously) (+54 IL, +184 JIT)
この出力は、私自身のカスタム エラー ページからのものであることに注意してください。したがって、.NET 自体は正常に動作しています。リモートでデバッグすることもできます。
と入力するhttp://localhost/MyApp/Default.aspx
と、すべて正常に動作し、デフォルトのページなどが表示されます。最初に考えたのは、既定のドキュメントが IIS で指定されていないということですが、指定されています。さらに悪いことに、完全に無効にしても、同じエラー メッセージが表示されます (そうです、IIS を再起動し、ブラウザのキャッシュをクリアしました)。
の要求/
は常に ASP.NET に直接送信されるように見えますが、既定のドキュメントの概念がないため混乱します。しかし、ワイルドカード マッピングが定義されていません。