Я использую IIS на Windows Server 2003, у меня возникли проблемы с внутренней ошибкой сервера 500. Я хочу определить, получает ли какой-либо пользователь следующую ошибку, и перезапустить сервер, если это произойдет.
Я просто не могу найти хороший способ определить, возвращает ли сервер эту ошибку. Я попытался обнаружить это, загрузив некоторую световую страницу с сервера в определенный период времени и проверив наличие ошибок, но я не думаю, что это оптимальный вариант.
Поделитесь, пожалуйста, некоторыми идеями относительно моей задачи. Заранее спасибо.
Перезапуск IIS из-за ответа 500 - это примерно то же самое, что разбить яйцо сильным взмахом кувалды. Вы не собираетесь решить эту проблему с помощью перезапуска, вам придется решить свою проблему, выяснив, что вызывает 500, и исправив ее. Автоматический перезапуск сервера на 500 не решает проблему. В лучшем случае это очень слабый способ обхода.
Если у вас есть страница, которая генерирует 500, и она достаточно плохая, чтобы требовать перезапуска сервера, значит, вы находитесь в плохом состоянии, и вам следует сосредоточиться на определении причины ошибки. Поищите информацию об ошибках в журналах IIS. Возможно, вам потребуется включить дополнительные поля журнала, чтобы получить необходимую информацию. Включите подробный отчет об ошибках в своем приложении, если он еще не включен.
Тем не менее, если вы хотите определить, когда происходит 500, вам нужно будет сделать что-то вроде следующего:
Хорошее и компактное описание журналов IIS можно найти в эта почта. Связанный фрагмент:
Наиболее важные файлы журналов для IIS6 (и их расположение):
- Журнал ошибок HTTP.SYS -
%windir%\System32\LogFiles\HTTPERR
(Местоположение по умолчанию; настраивается)- Журнал веб-сайта IIS -
%windir%\System32\LogFiles\W3SVC#
(Местоположение по умолчанию; настраивается) **- Журнал событий (как система, так и приложение)
Если вы столкнулись с ситуацией слишком большого количества подключений, я все равно рекомендую устранить неполадки в приложении, особенно в случае утечки памяти. Изолируйте проблемное приложение от собственного пула приложений, чтобы избежать перезапуска всего сервера.