У нас есть проблема, возникающая на некоторых наших рабочих станциях разработчиков: при посещении URL без имени файла (например, http://localhost/), IIS 7 возвращает ошибку 404. Все работают под управлением Windows 7/IIS 7.5 и ASP.NET 4.0. Пул приложений настроен на использование режима классического конвейера.
Документы по умолчанию включены, а default.aspx - в списке документов по умолчанию.
Я включил провальную трассировку запроса и вижу это в журнале:
OldHandlerName="", NewHandlerName="ExtensionlessUrl-ISAPI-4.0_64bit",
NewHandlerModules="IsapiModule",
NewHandlerScriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll", NewHandlerType=""
Позже я вижу, что этот IsapiModule отклоняет запрос:
ModuleName="IsapiModule", Notification="EXECUTE_REQUEST_HANDLER", HttpStatus="404",
HttpReason="Not Found", HttpSubStatus="0",
ErrorCode="The operation completed successfully. (0x0)", ConfigExceptionInfo=""
Похоже, что IIS считает, что ExtensionlessUrl-ISAPI-4.0-64bit должен обрабатывать запрос. Когда я смотрю на эту конфигурацию модуля, она показывает, что она должна соответствовать пути *.
, поэтому я смущен, почему он не соответствует пути.
Поиск Google включает этот пост на форумах IIS.net с 2005 года. К сожалению, никаких решений не предлагается, просто подтверждение проблема.
Когда я обновляю свой пул приложений для использования интегрированного режима, проблема исчезает. К сожалению, он должен запускаться в классическом режиме.
Что я могу сделать, чтобы IIS снова загрузил наши документы по умолчанию?