Есть ли способ настроить пул приложений "Idle timeout" в web.config?

Я знаю, что можно установить тайм-аут сеанса. Но если приложение не получило никаких запросов в течение определенного периода времени, IIS отключает приложение.

Такое поведение настраивается в консоли управления IIS, и я знаю, как это сделать. Тем не менее, мне интересно, можно ли это настроить в web.config.

Ответ 1

Не в IIS 6. В IIS 6 пулы приложений управляются рабочими процессами, которые сопоставляются с очередью запросов, обрабатываемой HTTP.sys. HTTP.sys обрабатывает связь с WWW-сервером, чтобы определить, когда начинать и останавливать рабочие процессы.

Так как IIS 6 был создан до .Net, между .NET и низкоуровневыми HTTP-обработчиками нет связи.

ASP.net внедряется как фильтр ISAPI, который загружается самим рабочим процессом. У вас есть проблема с цыпленком до яйца, если вы смотрите на web.config, контролирующий рабочий процесс. В первую очередь это связано с тем, что MS сделала большую перезапись IIS 7, которая интегрирует .Net через весь жизненный цикл запроса, а не только часть фильтра ISAPI.

Ответ 2

Вы можете редактировать эти настройки, но не в web.config. Если у вас IIS7, параметр находится в applicationHost.config, а ключевым атрибутом является shutdownTimeLimit.
Вы можете использовать Google, чтобы узнать, как использовать appcmd и другие инструменты для его установки или изменения.

Пример

Также вы можете напрямую изменить shutdownTimeLimit, отредактировав файл applicationHost.config, который находится в каталоге \inetsrv\config.

Схема файла applicationHost.config находится в файле \inetsrv\config\schema\IIS_schema.xml.
Поэтому откройте его в своем любимом XML-редакторе, ориентированном на схему, и вы получите intellisense и т.д.

Ответ 3

Вы можете сделать это, установив IdleTimeout. НО изменения в элемент processModel вступают в силу только при перезапуске рабочего процесса - не сразу после изменения настройки, как и в других элементах конфигурации. Вы можете видеть это здесь: processModel Element

Вы также должны изменить machene.config, чтобы редактировать конфигурацию машины из другого архива.