C# - 当网站上没有活动时,Quartz调度程序停止运行

Ton*_*Bui 2 c# asp.net quartz-scheduler

我用石英调度程序创建了asp.net站点.作业在后台运行,网站上没有其他活动.

Quartz调度程序每30分钟安排一次.

IIS启动后,Scheduler正常运行.

但过了一段时间,Scheduler停止运行(大约1小时).

如果在站点上有一个或多个活动作为用户登录或查看仪表板,则Scheduler会正确运行.

但是当现场没有任何活动时,它就会停止运行.

如果现场没有活动,如何保持我的调度程序的所有时间?

P/s:我知道我的问题可能与其他问题重复.但我仍然会问,因为我无法评论其他问题的答案.

编辑:

Day Running at: 7/14/2016 4:00:00 AM
--
Day Running at: 7/14/2016 4:30:00 AM
--
Day Running at: 7/14/2016 5:00:00 AM
--
Stopped running
--
Day Running at: 7/14/2016 2:00:00 PM
--
Day Running at: 7/14/2016 2:30:00 PM
--
Day Running at: 7/14/2016 3:00:00 PM
--
Stopped running
--
Run Code Online (Sandbox Code Playgroud)

fel*_*x-b 5

默认情况下,如果应用程序在一段时间内未收到任何请求,IIS将卸载您的应用程序.

您可以将IIS配置为永不卸载您的应用程序.有很多原因IIS将卸载您的应用程序 - 确保您禁用所有这些.它位于应用程序池设置中,最好转到高级设置并仔细通过所有这些设置.

另外,如果您有后台作业,您需要按计划可靠地运行,除了Web应用程序之外,为什么不将它部署在Windows服务中呢?Web应用程序最擅长提供传入请求,而不是运行预定作业.

UPDATE

在应用程序池的高级设置中查看这些:

  • 过程模型/空闲超时和空闲超时操作
  • 回收/常规时间间隔,请求限制,专用内存限制,虚拟内存限制