У нас есть Windows 2008 RS Server, на котором запущен IIS, на котором размещен сайт ASP.NET. Сегодня утром произошла странная последовательность событий. Сначала уведомление о том, что AppPool перерабатывается из-за бездействия:
«Рабочий процесс с идентификатором процесса« 6896 », обслуживающий пул приложений« xxxx », был остановлен из-за бездействия. Конфигурация тайм-аута пула приложений была установлена на 20 минут. При необходимости будет запущен новый рабочий процесс».
Это имеет смысл и насмешки без настроек тайм-аута, но через 30 секунд мы видим:
«Процесс, обслуживающий пул приложений« xxxx », неожиданно завершил работу. Идентификатор процесса был« 6896 ». Код выхода процесса был« 0xc0000005 ».
Я нашел более старый Статья в базе знаний это объясняет условие, при котором это может произойти в IIS6 из-за проблем с разрешениями, но мне любопытно, что может вызвать это в IIS7.5, тем более, что мы не видим это регулярно.
Причиной может быть что-то похожее на ту статью.
Сообщение об ошибке в основном «доступ запрещен» (все, что заканчивается на 05, обычно означает «нет»), что говорит о том, что процесс пытался что-то сделать, когда ему было приказано уйти, и потерпел неудачу.
Так как:
... должно быть минимальное влияние на приложение (и нулевое для любых пользователей), если только оно не пытается сделать что-то сумасшедшее при завершении домена приложения или что-то подобное.
Если бы он делал это как учетную запись пула приложений (обсуждение терминов), что действительно вероятно (учитывая, что она перерабатывается из-за отсутствия запросов), эта учетная запись предположительно не смогла где-то прочитать или записать что-то. Красиво и конкретно, не правда ли?
Итак, подробнее, пожалуйста:
Вы используете пул приложений как конкретную учетную запись пользователя или как ApplicationPoolIdentity?
Если конкретная учетная запись, у вас есть manualGroupMembership = true