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

Веб-сайт выходит из строя после перезапуска пула приложений

В минувшие выходные наш веб-сайт, работающий с IIS 6.0, перестал обрабатывать вызовы веб-служб. Файл журнала был заполнен следующей ошибкой, пока сервер не был перезагружен примерно через 8 часов:

2011-05-08 01: 53: 12,109 ОШИБКА. Не удалось получить разрешение на выполнение.

2011-05-08 01: 53: 12,135 ОШИБКА - в System.Security.SecurityManager.ResolvePolicy (доказательство, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet & denied, логическое значение checkExecutionPermission).

Эта ошибка появляется еще 316 871 раз в файле веб-журнала.

Выбор времени был интересен тем, что первая ошибка, указанная выше, произошла сразу после того, как была запланирована 29-часовая перезагрузка пула приложений, как я вижу эту запись:

Рабочий процесс с идентификатором процесса «758628», обслуживающий пул приложений «gpsigolf.com», запросил повторный цикл, поскольку рабочий процесс достиг своего допустимого предела времени обработки.

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

С тех пор сервер работал без проблем через несколько перезапусков пула приложений и работал в течение пяти дней до того, как возникла эта проблема. Это новый сервер, на который мы перешли, поэтому он был запущен всего за пять дней до возникновения этой проблемы.

Вопрос в том, почему и как перезапуск пула приложений может вызвать эту проблему? Есть ли определенные настройки, которых следует избегать, например, Overlapped Recycling?

Я бы отключил рециркуляцию через 29 часов (1740 минут). Это просто значение по умолчанию, но бесполезно в производстве. Если вам необходимо автоматически перерабатывать, делайте это в установленное время в нерабочее время.

Перекрывающиеся пулы приложений совершенно здоровы. Проверять, выписываться это недавнее видео в моей серии статей о веб-дизайне, посвященной этому.

Я предполагаю, что произошло то, что что-то было связано с одним из ключевых файлов на вашем сайте, и IIS не смог получить для него разрешения на выполнение. Вероятно, это не сработало, пока IIS не выпустил файл во время повторного использования, и что-то другое не заняло его.

Когда это произойдет снова (что, скорее всего, произойдет, поскольку ничего не изменилось), я рекомендую использовать Process Monitor и / или Process Explorer, чтобы узнать, какой файл заблокирован. Он должен появиться при поиске "denied" в захвате Process Monitor. Вот еще один быстрый видео о том, как использовать Process Monitor.