У меня есть веб-приложение ASP.NET 4.0 (веб-формы, а не mvc; маршрутизация asp.net не используется), которое отлично работает в IIS7.Когда я пытаюсь запустить его под 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, который затем запутывается, потому что у него нет концепции документа по умолчанию.Но у меня не определены подстановочные сопоставления, так как это может быть?