Я изучаю проблему, возникшую на сервере Windows 2003 несколько дней назад. существует около 15 пулов приложений, и в течение нескольких минут все они вызвали ошибку в системном журнале:
A process serving application pool 'Pool 31x' failed to respond to a ping. The process id was '7144'.
Затем пулы были перезапущены автоматически, но время ожидания истекло во время запуска, в результате чего все сайты были отключены.
Мой вопрос: что может вызвать «тайм-аут ping» для всех пулов приложений примерно в одно и то же время, а затем почему они запускаются слишком медленно?
Приложение в каждом пуле представляет собой WCMS, использующую платформу .NET 1.1. Он подключается к удаленной БД, но в остальном не зависит от других машин.
«Ping» в IIS - это не что иное, как проверка работоспособности, выполняемая W3SVC для отслеживания состояния рабочего процесса. Когда вы видите такое событие, как «Пул приложений, обслуживающий процесс 'appPool', не смог ответить на эхо-запрос». означает, что процесс находится в мертвом состоянии.
Быстрая защита от сбоев - это вариант повторного использования, который решает такую проблему и самостоятельно перерабатывает appPool, чтобы поддерживать хорошее состояние рабочего процесса.
Вам нужно будет отладить процесс, чтобы добраться до корня проблемы.
Поскольку у вас есть приложение .net, загруженное в рабочий процесс, неплохо проверить журнал событий приложения и увидеть какие-либо предупреждения или ошибки .net framework. Вы можете подключить к процессу инструмент диагностики отладки и сделать дамп, чтобы проверить, что вызывает проблему. Следите за статьей Как использовать средство диагностики отладки для устранения неполадок процесса, который не отвечает в IIS
Вы смотрели в глобальном Журнал ошибок HTTP?
Это называется httperr.log
и обычно находится в каталоге файлов журнала C:\windows\system32\LogFiles
, под основным W3CSVC1
служба.
Когда у меня возникали проблемы с пулами приложений, этот файл был весьма полезен.