Я искал информацию об этом безрезультатно. Контекст, почему мне это нужно, - другой вопрос, который я задал здесь. Более конкретно, создает или обновляет/удаляет файлы в App_Data, чтобы перезагрузить пул?
Если кто-то может предоставить подробный список того, что вызывает переработку, это было бы здорово.
ОБНОВЛЕНИЕ. Как уже заметили два пользователя, я также был бы рад ответить, указав причины для утилизации только AppDomain, а не всего пула.
Ответ 1
Два разных эффекта:
Процесс AppPool является хостом для потенциально нескольких доменов приложений. Как правило, это может быть переработано с помощью ряда эффектов. Это может быть время (каждые n часов), отсутствие запросов, использование памяти и т. Д.; все настроено в диспетчере конфигурации IIS.
Домен приложений, размещенный экземпляр корневого каталога вашего приложения, может циклически повторяться, не затрагивая другие домены приложений в AppPool. Сообщение Тесс об утилизации AppDomain довольно проницательное.
Вы пишете в папку, отслеживаемую для перекомпиляции. В какой-то момент это приведет к восстановлению домена приложения.
Журнал событий поможет вам определить, по какой причине произошла перезапуск.
Ответ 2
Статья, которую вам понравилась в другом посте, действительно сделала действительно хорошую работу.
Немедленная переработка
- Изменения в Web.config
- Изменения Machine.config
- Изменения Global.asax
- Изменения в каталоге корзины
- Изменения в App_Code
Отложенный цикл
Может произойти с несколькими изменениями в других местах, как правило, я заметил это только с изменениями в файлах .aspx или .cs/.vb. Добавление временного текста, csv или других файлов не привело к проблемам для меня.
ПРИМЕЧАНИЕ. Это все утилиты, используемые в домене приложений, а не фактические рециркуляции пула. Как правило, приложение POOL будет перерабатываться только на основе параметров в IIS (количество запросов, ограничение памяти, время простоя или запланированный перезапуск).
Ответ 3
Возможно, вы захотите включить полные журналы событий 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.
Это было чрезвычайно полезно для нас при диагностике нескольких проблемных ошибок: одно в partictual было приложением, которое записывало файлы журналов в каталог wwwroot - слишком много изменений в файле, приводящих к переработке...
Ответ 4
Это может происходить ежедневно на основе предпочтений или когда максимальная виртуальная память для процесса превышена.
Ответ 5
Это параметр, который вы можете манипулировать для утилизации пула приложений на основе количества запущенных минут или количества обработанных запросов.
Он также будет перерабатывать изменения в web.config и другие вещи, которые были отправлены здесь.
IIS reset также выполнит трюк, а также остановит/запустит службы.
Ответ 6
w3wp.exe
выдает ошибку. Это вызывало вызов Application_Start
в Global.asax
.
Чтобы это выяснить, я открыл Event Viewer.
Под Журналами Windows я перешел в Приложение.
Я обнаружил ошибку приложения:
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: