Что вызывает перезапуск пула приложений в IIS?

Я искал информацию об этом безрезультатно. Контекст того, зачем мне это нужно, это еще один вопрос, который я задал здесь. Более конкретно, вызывает ли создание / обновление / удаление файлов в App_Data перезапуск пула?

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

ОБНОВЛЕНИЕ: Как уже заметили два пользователя, я также был бы рад ответить на него, указав причины перезапуска только домена приложения, а не всего пула.

6 ответов

Решение

Два разных эффекта - процесс AppPool является хостом для потенциально нескольких доменов приложений. Как правило, это может быть переработано с помощью ряда эффектов, например, времени - каждые 'n' часов, отсутствия запросов, использования памяти и т. Д. Сконфигурировано в IIS Config Manager.

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

http://blogs.msdn.com/tess/archive/2006/08/02/asp-net-case-study-lost-session-variables-and-appdomain-recycles.aspx

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

Журнал событий поможет вам определить причину, вызванную переработкой.

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

Немедленная переработка

  • Изменения в Web.config
  • Изменения Machine.config
  • Global.asax изменения
  • Изменения в каталоге бинов
  • Изменения App_Code

Задержка рециркуляции

Может произойти с несколькими изменениями в других местах, как правило, я заметил это только с изменениями в файлах.aspx или.cs/.vb. Добавление временного текста, CSV или других файлов не привело к проблемам для меня.

ПРИМЕЧАНИЕ. Это все повторы использования домена приложения, а не фактические повторения пула. Обычно POOL приложения будет перезагружаться только в зависимости от настроек в IIS (количество запросов, ограничение памяти, время простоя или запланированный перезапуск).

Возможно, вы захотите включить полные журналы событий AppPool Recycle:

cscript adsutil.vbs Set w3svc/AppPools/DefaultAppPool/LogEventOnRecycle 255 

Возможно, вы захотите взглянуть на эту статью в блоге Скотта Гатри: http://weblogs.asp.net/scottgu/archive/2005/12/14/433194.aspx которой показано, как писать код в Global.ASAX для входа в систему. фактическая причина события Application.End.

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

Это может происходить ежедневно на основе предпочтений или при превышении максимальной виртуальной памяти для процесса.

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

Он также будет перерабатывать изменения web.config и другие вещи, которые были опубликованы здесь.

Сброс IIS также поможет, как и остановка / запуск служб.

w3wp.exe ошибался. Это было причиной Application_Start быть вызванным в Global.asax,

Чтобы это выяснить, я открыл Event Viewer.

Под Windows Logs я пошел в приложение.

Я видел ошибку приложения:

Faulting application name: w3wp.exe, version: 10.0.16299.15, time stamp: 0x0aeb5595
Faulting module name: KERNELBASE.dll, version: 10.0.16299.334, time stamp: 0x6369e29f
Exception code: 0xe0434352
Fault offset: 0x0000000000014008
Faulting process id: 0x2900
Faulting application start time: 0x01d43b16f726cbb9
Faulting application path: c:\windows\system32\inetsrv\w3wp.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report Id: 998cf55d-2cd9-4b8d-9884-2110e3fd1411
Faulting package full name: 
Faulting package-relative application ID: 
Другие вопросы по тегам