В чем разница между сбросом IIS и повторным использованием пула приложений при воздействии на кеш - PullRequest
14 голосов
/ 23 ноября 2011

Я столкнулся со странной проблемой: насколько я знаю, кэш можно очистить путем повторного использования пула приложений.

Однако в недавнем проекте кэш не очищается таким образом. Вместо этого нам пришлось сбросить IIS, чтобы очистить кеш.

Каковы различия между этими действиями и что может быть причиной различий, которые я испытал?

Ответы [ 2 ]

10 голосов
/ 18 июля 2013

Пожалуйста, проверьте следующую статью для подробного объяснения: http://fullsocrates.wordpress.com/2012/07/25/iisreset-vs-recycling-application-pools/

Вкратце:

Переработка Функция AppPool была представлена ​​в IIS6.

IISRESET останавливает и запускает все службы, связанные с IIS.Он пытается нормально завершить работу всех компонентов, т. Е. Отправляет запрос на завершение работы и ожидает выключения служб.Он ожидает завершения работы всех служб и запускает их снова.

При перезапуске AppPool сначала запускается новый рабочий процесс, а затем завершается работа старого рабочего процесса.Это делает время простоя меньше, чем IISRESET.

9 голосов
/ 23 ноября 2011

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

При сбросе IIS все рабочие завершаются, и кэш в памяти очищается. Новые рабочие будут созданы после поступления новых запросов.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...