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

В чем разница между iisreset, recycle, refresh и restart?

В IIS7 есть множество вещей, которые вы можете сделать, чтобы перезапустить веб-сайт. Я не понимаю, как именно они все связаны.

Может кто-нибудь объяснить, что именно нравится каждому?

iisreset остановит и запустит службу публикации в Интернете. Это, конечно же, относится ко всем вашим пулам приложений. Я уверен, что вы заметили, что для каждого пула приложений создается процесс. Этот процесс будет обрабатывать запросы для всех связанных с ним веб-сайтов. Когда ты переработать пул приложений, IIS создаст новый процесс (сохраняя старый) для обслуживания запросов. Затем он пытается переместить все запросы в новый процесс. По истечении времени ожидания старый процесс будет автоматически завершен. Обычно вы перерабатываете свой пул приложений, чтобы избавиться от утечки памяти (у вас могут возникнуть проблемы с вашим приложением, если это должна быть обычная операция, даже если рекомендуется иметь запланированную перезагрузку). Что касается перезапуск веб-сайта, он просто останавливает и перезапускает обслуживание запросов для этого конкретного веб-сайта. Он будет продолжать обслуживать другие веб-сайты в том же пуле приложений без перебоев.

Если у вас есть сессионно-ориентированное приложение, все вышеперечисленное приведет к потере объектов сеанса.

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

Чтобы ответить на два других ваших вопроса:

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

iisreset останавливает и запускает весь веб-сервер. Вот и все - все ваши пользователи теряют связи, пока это происходит.

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

@Vlad Mucescu дал хороший ответ, но, похоже, в той части, где он описывает переработку приложения, он говорит о Overlapped Recycling. Существует два типа рециркуляции: Переработка процесса и Переработка с перекрытием (источник MSDN):

Переработка процессов

Режим изоляции рабочих процессов предлагает повторное использование процессов, при котором IIS автоматически обновляет веб-приложения, перезапуская их рабочие процессы. Повторное использование процессов обеспечивает бесперебойную работу проблемных приложений и является особенно эффективным решением в случаях, когда невозможно изменить код приложения.
Утилизация процесса, которая следует за событием утилизации, может происходить двумя способами.
Если рабочий процесс, в настоящее время обслуживающий пул приложений, завершается, тогда служба WWW (W3SVC), действуя как родительский процесс для рабочих процессов, перезапускает новый процесс вместо него.
Когда рабочий процесс завершается, одновременно запускается новый. Этот вид вторичной переработки называется вторичной переработкой. Это значение по умолчанию для всех пулов приложений.

Переработка с перекрытием

В сценарии перезапуска с перекрытием процесс, предназначенный для повторного использования, продолжает обрабатывать все оставшиеся запросы, в то время как замещающий рабочий процесс создается одновременно. Новый процесс запускается до остановки старого рабочего процесса, а затем запросы направляются новому процессу. Такая конструкция предотвращает задержки в обслуживании, поскольку старый процесс продолжает принимать запросы до тех пор, пока новый процесс не будет успешно инициализирован, и получает указание завершить работу только после того, как новый процесс будет готов обрабатывать запросы.