Приложение ASP.NET 4.0 не может найти Default.aspx под IIS6 - PullRequest
1 голос
/ 23 января 2012

У меня есть веб-приложение 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, который затем запутывается, потому что у него нет концепции документа по умолчанию.Но у меня не определены подстановочные сопоставления, так как это может быть?

1 Ответ

1 голос
/ 23 января 2012

После поиска в Google я нашел это как решение.Это не связано, но некоторые прокомментировали его работу.Можете ли вы попробовать это.

В реестре Windows откройте следующий узел: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ ASP.NET \ 4.0.30319.0

1. Создайте новое значение DWORD с именем EnableExtensionlessUrls.2. Установите EnableExtensionlessUrls в 0. Это отключает поведение URL без расширения.3. Сохраните значение реестра и закройте редактор реестра.4. Запустите средство командной строки iisreset, которое заставит IIS прочитать новое значение реестра

...