Извините за расплывчатое название, так как я действительно не могу кратко объяснить эту проблему.
В основном у меня Windows Server 2008 x64, IIS7, ASP.NET 2.05, и у меня есть сайт, работающий в Classic AppPool (и нет, я не могу работать в интегрированном).
При первой попытке загрузить файл * .aspx (т.е. после установки сайта, перезапуска сервера и т. Д.) Я получаю такую ошибку:
Ошибка HTTP 500.0 - внутренняя ошибка сервера
Страница не может быть отображена из-за внутренней ошибки сервера.
Модуль: IsapiModule
Уведомление: ExecuteRequestHandler
Обработчик: PageHandlerFactory-ISAPI-2.0-64
Код ошибки: 0x800710dd
Способ входа: анонимный
Пользователь входа в систему: Аноним
В качестве обработчика используется IIS7 по умолчанию:
<add name="PageHandlerFactory-ISAPI-2.0-64" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
Я даже пробовал добавить свой собственный обработчик для aspx, который выглядел так:
<add name="aspx" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
Единственное, что было сделано, - это изменить часть Handler уведомления об ошибке, чтобы она говорила IsapiModule.
Странно то, что эта ошибка возникает только в первый раз (или когда сервер простаивает в течение нескольких часов). Как только я вижу эту ошибку, если я обновляю страницу, все снова в порядке.
Я даже попытался удалить файл web.config, но ничего не сделал.
Кажется, я не могу найти в Интернете однозначного ответа на эту проблему.
Изменить: я включил отслеживание неудачных запросов, и вот что он показывает:
MODULE_SET_RESPONSE_ERROR_STATUS Предупреждение ModuleName = "IsapiModule", Notification = "EXECUTE_REQUEST_HANDLER", HttpStatus = "500", HttpReason = "Внутренняя ошибка сервера", HttpSubStatus = "0", Идентификатор HttpSubStatus = "0", ErrorCodex800 = "Идентификатор операции не равен 0", ErrorCode800 = "Неисправность ErrorCode =" знак равно
И прямо перед ошибкой он показывает:
NOTIFY_MODULE_START ModuleName = "IsapiModule", Notification = "EXECUTE_REQUEST_HANDLER", fIsPostNotification = "false", fIsCompletion = "false"
Теперь, когда я сравниваю это с успешным запуском, разница в том, что ошибка вызывает MODULE_SET_REPONSE_ERROR_STATUS, тогда как успешный запуск - нет (а затем продолжает производить правильный вывод HTML).
Изменить: я взял простое приложение и попытался запустить его, но получил ту же ошибку. Но когда пул приложений находился в интегрированном режиме, он работал нормально! К сожалению, я не могу перенести наше приложение на интегрированное по причинам, которые не могу указать, но я сузил его до пула приложений. Также мне не нужно перезапускать сервер, чтобы воспроизвести ошибку, вместо этого подойдет переработка пула приложений.
Резюме:
- Как указано ниже, в журналах событий нет ничего, что указывало бы на сбой. Я просмотрел все журналы в средстве просмотра событий