Назад | Перейти на главную страницу

IIS 7 AppPool регистрирует ошибку после перезапуска из-за бездействия

У нас есть Windows 2008 RS Server, на котором запущен IIS, на котором размещен сайт ASP.NET. Сегодня утром произошла странная последовательность событий. Сначала уведомление о том, что AppPool перерабатывается из-за бездействия:

«Рабочий процесс с идентификатором процесса« 6896 », обслуживающий пул приложений« xxxx », был остановлен из-за бездействия. Конфигурация тайм-аута пула приложений была установлена ​​на 20 минут. При необходимости будет запущен новый рабочий процесс».

Это имеет смысл и насмешки без настроек тайм-аута, но через 30 секунд мы видим:

«Процесс, обслуживающий пул приложений« xxxx », неожиданно завершил работу. Идентификатор процесса был« 6896 ». Код выхода процесса был« 0xc0000005 ».

Я нашел более старый Статья в базе знаний это объясняет условие, при котором это может произойти в IIS6 из-за проблем с разрешениями, но мне любопытно, что может вызвать это в IIS7.5, тем более, что мы не видим это регулярно.

Причиной может быть что-то похожее на ту статью.

Сообщение об ошибке в основном «доступ запрещен» (все, что заканчивается на 05, обычно означает «нет»), что говорит о том, что процесс пытался что-то сделать, когда ему было приказано уйти, и потерпел неудачу.

Так как:

  • это простой рабочий процесс
  • которое было сказано перерабатывать и
  • таким образом завершается в любом случае, и
  • новый рабочий процесс ставится в очередь до того, как старый будет завершен (он фактически не будет работать в этот момент, если нет ожидающего запроса к тому же пулу; очередь HTTP.SYS тем временем переустанавливается на WAS)

... должно быть минимальное влияние на приложение (и нулевое для любых пользователей), если только оно не пытается сделать что-то сумасшедшее при завершении домена приложения или что-то подобное.

Если бы он делал это как учетную запись пула приложений (обсуждение терминов), что действительно вероятно (учитывая, что она перерабатывается из-за отсутствия запросов), эта учетная запись предположительно не смогла где-то прочитать или записать что-то. Красиво и конкретно, не правда ли?

Итак, подробнее, пожалуйста:

  • Вы используете пул приложений как конкретную учетную запись пользователя или как ApplicationPoolIdentity?

  • Если конкретная учетная запись, у вас есть manualGroupMembership = true

    • (и если да, является ли пользователь членом IIS_IUSRS? Если mGM = true не используется, это не обязательно, SID для IIS_IUSRS все равно вводится)