Если вы занимаетесь ASP.NET, обязательно используете IIS
Если вы хотите добавить запланированную задачу в приложение ASP.net, необходимо использовать поток для непрерывного выполнения расписанных расчётов
Допустим, мы добавляем Quartz.NET фреймворк к нашему ASP.Net приложению, и конфигурация и так далее в порядке.
У этого сайта очень мало посетителей, и сейчас им пользуются лишь немногие на работе, но на следующий день я пришёл и увидел, что потоки и задачи вычисления фонового планирования были остановлены, и если вы заберёте Application_End событие, вы увидите, что это событие действительно было вызвано.
Значит, с механизмом переработки пула приложений в IIS что-то не так. Поскольку по умолчанию в IIS настраивается так: если пул приложений сайта не доступен или не запрашен в течение определённого времени, IIS автоматически восстановит пул программ и прекратит процесс. Нити в этом процессе точно не выдержатся.
Однако мы можем настроить параметры пула приложений так, чтобы они не перерабатывались автоматически (некоторые ситуации неизбежны, например, горячие развертывания сайтов, чрезмерное количество ошибок и т.д.)
Найдите пул программ, используемый этим сайтом, в IIS и нажмите «Расширенные настройки...»
Измените следующие настройки в открытом списке:
Восстановление — фиксированный временной интервал (минуты) изменён на 0
- Лимит виртуальной/выделенной памяти (KB) изменён на 0
Модель процесса — тайм-аут простоя (минуты) изменён на 0
Таким образом, пул программ не будет автоматически перерабатываться, и некоторые простые вычислительные потоки в фоне будут работать нормально |