Запрет IIS от выгрузки сайта ASP.Net
Как предотвратить разгрузку сайта ASP.Net с помощью IIS?
У меня есть самый тупой веб-сайт в мире - раз в час он просыпается и записывает метку времени в файл журнала. Когда приложение запускается, оно говорит об этом с отметкой времени в журнале, а когда оно умирает, то же самое.
В IIS я вошел в его пул приложений и установил для Idle Timeout значение 0, а для параметра Generate Recycle Event Log Entry > Regular Time Interval - значение False.
Тем не менее, сайт по-прежнему выгружается примерно один раз в день - в журнале я получаю запись App Unloading..., и он остается мертвым до следующего посещения.
Как я могу предотвратить его разгрузку?
(Очевидно, что этот сайт будет делать больше, как только я решу эту проблему - на данный момент выявить проблему как можно проще).
2 ответа
У пула приложений есть другое свойство, которое заставляет его автоматически перерабатываться каждые N минут (по умолчанию 1740 или каждые 29 часов). Установите это ноль, чтобы отключить перезапуск. Свойство (на IIS7) находится под заголовком "Переработка" и называется "Регулярный интервал времени (минуты)"
В дополнение к рекомендации @jlew, руководство в этой статье важно, если вы выполняете фоновую задачу / таймер постоянно / периодически в ASP.Net без бремени установки / настройки / обслуживания служб Windows и запланированных задач:
Он включает в себя полезную вспомогательную библиотеку, WebBackgrounder, которая абстрагирует рекомендации в статье по корректному завершению работы и некоторым типичным потребностям / потребностям фоновой задачи.
Он не настраивает IIS для вас - вам нужно изменить настройки утилизации самостоятельно.