2012-01-23 3 views
1

У меня есть веб-приложение ASP.NET 4.0 (веб-формы, а не mvc; маршрутизация asp.net не используется), которая отлично работает под IIS7. Когда я пытаюсь запустить его под IIS6 и перейти к http://localhost/MyApp/, я получаю следующее исключение:Приложение ASP.NET 4.0 не может найти Default.aspx под IIS6

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

+0

Удалили ли вы просмотр прокрутки на вкладке «Справочник» – JayOnDotNet

+0

@moguzalp - я не хочу, чтобы люди могли перечислять содержимое мои каталоги. –

ответ

1

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

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

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

+0

Это глобальное решение локальной проблемы. Я не хочу делать это на клиентских машинах, потому что они могут понадобиться. Тем не менее ... похоже, что это корень проблемы ... –

+0

Я принял ваш ответ, потому что он, очевидно, является источником проблемы. Я не буду устанавливать раздел реестра, но зная, что вызвало это, я могу написать обходное решение в моем приложении. –

 Смежные вопросы

  • Нет связанных вопросов^_^