Что вызывает перезапуск пула приложений в IIS?
Я искал информацию об этом безрезультатно. Контекст того, зачем мне это нужно, это еще один вопрос, который я задал здесь. Более конкретно, вызывает ли создание / обновление / удаление файлов в App_Data перезапуск пула?
Если бы кто-то мог предоставить подробный список причин, вызывающих переработку, это было бы здорово.
ОБНОВЛЕНИЕ: Как уже заметили два пользователя, я также был бы рад ответить на него, указав причины перезапуска только домена приложения, а не всего пула.
6 ответов
Два разных эффекта - процесс AppPool является хостом для потенциально нескольких доменов приложений. Как правило, это может быть переработано с помощью ряда эффектов, например, времени - каждые 'n' часов, отсутствия запросов, использования памяти и т. Д. Сконфигурировано в IIS Config Manager.
AppDomain - размещенный экземпляр корневого каталога вашего приложения, который можно циклически выполнять чаще, не затрагивая другие домены AppPool. Сообщение Тесс об утилизации AppDomain довольно проницательное
Вы пишете в папку, отслеживаемую для перекомпиляции - это в какой-то момент вызовет воссоздание домена приложения.
Журнал событий поможет вам определить причину, вызванную переработкой.
Статья, которая вам понравилась в другом посте, действительно хорошо справилась с этой задачей.
Немедленная переработка
- Изменения в 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: