В IIS 6 перейдите в раздел «Пулы приложений» и щелкните правой кнопкой мыши> Свойства в пуле, в котором находится рассматриваемое приложение ASP.NET. Перейдите на вкладку «Производительность» и снимите флажок «Завершить рабочие процессы после простоя:»
В IIS 7 перейдите на панель «Подключения» и найдите пулы приложений, а затем выберите «Дополнительные параметры» для пула, в котором размещается ваше приложение. Найдите свойство «Idle Timeout» и установите для него «0» (это отключает его).
По умолчанию 20 минут бездействия. Если снять флажок, после того, как рабочий домен загружен рабочим процессом, он никогда не умрет (если, конечно, вы не уничтожите процесс или что-то еще). По умолчанию IIS перезапускает процесс, когда он достигает некоторого предела, такого как ограничение памяти, но также запускает новый и «фазирует» все входящие запросы до тех пор, пока старый не будет использован, чтобы минимизировать сбои.
Если у вас нет прямого контроля над конфигурацией IIS (например, совместно используемым хостом), лучше всего иметь небольшое приложение, работающее в отдельной системе, скажем, на постоянно работающей рабочей станции, которая каждый раз попадает на ваш сайт. минут, чтобы не допустить истечения срока действия пула приложений. Ничего особенного - подойдет простой WebRequest и цикл while () в консольном приложении.