У нас есть приложение ASP.NET Core, используемое внутри компании, которое используется в рабочее время, и пакет, который должен обрабатываться в 3 часа ночи каждое утро, что запланировано HangFire
следующим образом:
RecurringJob.AddOrUpdate(
() => MyBatch(),
"0 0 3 1/1 *");
Проблема в том, что пул приложений переходит в спящий режим и пакет не обрабатывается, если сайт не запускается вручную (обычно при переходе на сайт).
Я выполнил поиск SO и изменил эти настройки в пуле приложений, но безуспешно:
Некоторые источники, которые я использовал для изменения настроек:
- Как предотвратить / продлить idleTimeout в IIS 7?
- https://serverfault.com/questions/443065/how-do-i-prevent-iis-8-from-stopping-idle-asp-net-applications
- Кажется, что IIS спит до следующего запроса
Пул приложений используется всего 7 приложениями (все неактивны в ночное время, когда пакет должен быть обработан). Используемый пул приложений использует .NET CLR Version
2.0
. Я использую IIS версии 10.0.17134.1.
Как сделать так, чтобы пул приложений оставался активным, чтобы пакет можно было запускать регулярно каждое утро?
.NET CLR Version
на предыдущем AP был2.0
. Я не уверен, что это имеет значение, но согласно stackoverflow.com/questions/49185512/ Я могу использоватьNo managed code
для основных приложений, которые Я протестирую в этой AP вместе с теми же изменениями, что и в предыдущей AP. - person Westerlund.io   schedule 18.07.2018Kestrel
процесс завершается, когдаIIS
пул приложений перезагружается и этотIIS
может быть запущен снова, но дляKestrel
это происходит только тогда, когда приходит новый запрос (черезIIS
). Помимо рекомендаций по переносу приложения в планировщик или службу Windows, в качестве быстрого и грязного обходного пути вы можете запланироватьCURL
илиPowerShell
скрипт, чтобы сделать веб-запрос на ваш веб-сайт желаемым время как «звонок для пробуждения». - person pfx   schedule 25.07.2018