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

Какие изменения конфигурации требуют перезапуска веб-службы?

У меня сложилось впечатление, что некоторые изменения конфигурации (веб-сервера) требуют повторного включения службы.

Я специально имею в виду IIS, но мне было бы интересно узнать, есть ли у других веб-серверов такие же требования.

Что касается IIS 7, я не могу придумать ни одного. WAS не загружает дополнительные компоненты, он просто делает свое дело.

IIS 6 размещает в памяти копию своей конфигурации из / для / в метабазе в InetInfo.exe. Если это застрянет, все выйдет из строя (обычно все сразу), и для этого потребуется перезапуск службы (IISRESET / NOFORCE, если возможно).

В 99% случаев достаточно перезапустить пул приложений для восстановления службы или заставить особенно непокорное приложение перечитать свою конфигурацию (если его дескриптор просочился из уведомлений об изменении файлов, или ему наскучила жизнь, или просто висит). Изоляция рабочих процессов IIS 6+ (режим) означает, что большинство сбоев ограничивается одним процессом, и обычно работает повторный цикл, запускающий новый рабочий процесс по следующему запросу.

Есть исключения, как и в любом другом случае, но, как правило, для «чистых» веб-приложений это все, что вам нужно сделать.

Приложения COM, приложения, которые используют состояние вне самого процесса веб-сервера и т. Д., Могут быть более проблематичными, а некоторые приложения не будут поддерживать несколько экземпляров самих себя (одно завершение вешает загрузку другого), и в этом случае вы ре немного чучело, но в целом ... работает.

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

WAS (служба активации Windows) считывает файлы конфигурации, разделяет их для пулов приложений (см. Inetpub \ Temp \ AppPools) и позволяет рабочему процессу считывать свою собственную конфигурацию. Я не видел много ситуаций, в которых это было бы настолько сломано, чтобы потребовать перезапуска.

InetInfo не обязательно должен существовать в IIS 7 для рабочего сервера, в отличие от IIS <= 6 - он предназначен исключительно для совместимости с приложениями, которым необходимо взаимодействовать с эмулятором метабазы ​​(объекты Admin Base, ADSI, устаревший IIS 6 WMI и т. материала).

Что касается того, когда перезапустить службу:

  • Очень редко
  • Когда WAS регистрирует ошибки, которые читаются так, как будто он не хочет жить
  • Когда все сразу падает в кучу (и отдельные пулы приложений не могут быть идентифицированы для повторного использования

Но в остальном для восстановления обычно достаточно просто перезапустить пул приложений.

См. Также другой ответ в аналогичном ключе (да, и мой тоже): Какие шаги предпринять при попытке решить проблему с не отвечающим / зависшим / сломанным веб-сайтом IIS?

HTH

Обычно для изменения конфигурации требуется запуск / остановка веб-сервера. Веб-сервер считывает файлы конфигурации и применяет их при запуске. Веб-сервер не считывает файлы конфигурации динамически во время работы.