2008-11-19 3 views
63

Я искал информацию об этом безрезультатно. Контекст, почему мне это нужно, - another question I asked here. Более конкретно, создает или обновляет/удаляет файлы в App_Data, чтобы перезапустить пул?Что заставляет пул приложений в IIS перерабатывать?

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

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

+0

Вы уверены, что это пул, а не только домен приложения? – stephbu 2008-11-19 15:01:19

+0

Запись в блоге Well Tess на AppDomain сбрасывается довольно канонически - она ​​работает для команды ASP.NET. – stephbu 2008-11-19 16:52:59

ответ

29

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

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

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

Вы пишете в папку контролируемого для перекомпиляции - это вызовет AppDomain отдых в некоторой точке.

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

2

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

+0

Я понимаю эти причины. Я скорее задал вопрос о том, какое изменение приложения (не связанное с IIS) приведет к переработке. – Slavo 2008-11-19 14:58:36

+0

«изменено» для чтения как «изменения» – Slavo 2008-11-19 14:59:12

36

Эта статья, которая понравилась вам в другом посте, действительно сделала действительно хорошую работу.

Немедленное Перезарядка

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

Delayed корзины

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

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

1

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

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

Сброс IIS также будет выполнять трюк, так же как и остановки/запуск.

26

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

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

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

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