У меня есть Windows Server 2003 с установленным IIS 6. На этом сервере работает только один веб-сайт на базе ASP. Примерно каждые 1-3 часа IIS перестает отвечать (возвращает 500 Service unavailable) без уважительной причины. Нет большого использования сервера, нет зарегистрированных ошибок, вообще ничего.
Перезапуск IIS (на самом деле только службы) устраняет проблему, пока она не повторится снова.
Я больше не знаю, что проверять. У кого-нибудь из вас были подобные проблемы?
Загружает ли ваш веб-сайт ASP объект com в объект приложения IIS? У нас была очень похожая проблема с Win 2003 и Win 2008 (но последняя только на VMWare, насколько мы можем судить). Наше веб-приложение загрузило объект com в объект приложения IIS. Объект com был однопоточным, поэтому наш asp-скрипт должен был заблокировать объект приложения IIS перед вызовом его основного метода, чтобы гарантировать, что только один запрос может вызвать его за раз. Периодически это приводило к зависанию, которое, как мы полагаем, было вызвано тупиковой ситуацией на ресурсах по различным запросам.
Решением было написать исполняемый файл DCOM, который действовал как хост-процесс для COM-объекта. Затем ASP создал экземпляр объекта DCOM вне процесса, а не объекта COM в процессе. Это было сделано по совету инженера Microsoft и решило проблему в нашем случае.
Возможно, в приложении есть ошибка, которая приводит к сбою пула приложений. Если вы не видите ничего полезного в журнале событий приложения, попробуйте заглянуть в файл журнала IIS и посмотреть, для какого ресурса использовались последние несколько запросов прямо перед тем, как служба перестает отвечать. То есть найдите записи с кодом успешного ответа (200, 301, 304 и т. Д.), Которые находятся непосредственно перед записями, с которых начинается 500.
Если вы владеете кодом, откройте тестовый экземпляр и пройдите некоторое тестирование этого / этих ресурсов.