我们在IIS 8.0上托管了一个Intranet应用程序。
我们有一些可用的网络方法需要在特定时间执行。
因此,我们使用Quartz调度程序来安排执行Web方法的作业。在global.asax的Application_Start事件中,我们编写了启动调度程序的代码。
为了使调度程序保持运行,应用程序池应始终处于运行模式,因此我们设置了属性startMode =“AlwaysRunning”,并且应该启动应用程序,因此我们设置了应用程序属性preloadEnabled =“True”
我们每隔1740分钟(29小时,默认时间)回收应用程序池。
这里的问题是:
如果我的工作安排在凌晨3点。我的应用程序池处于运行状态。
我已经在预定时间前一天的下午6点浏览了该应用程序。
根据回收时间,我的应用程序池已在凌晨2点回收,直到凌晨3点,我的应用程序未被ping,但我的应用程序池处于运行状态。
当回收应用程序池时,将再次启动应用程序池(因为属性startMode =“AlwaysRunning”),但是如果该工作进程不同,则为进程ID。
由于应用程序池石英的回收未按计划执行作业。如果我在回收应用程序池后浏览应用程序,那么quartz将按照计划执行该作业。
最早有人可以帮我解决这个问题吗?
感谢您的期待。
答案 0 :(得分:3)
如果您的IIS 8.0在Sever 2012操作系统上运行,则需要启用“应用程序初始化”#39;特征。
请访问this link了解更多信息。
只有在添加了该功能后,该属性才会出现“预载”和“真正的"'会有效的。
如果您在任何其他操作系统上遇到此问题,请告诉我。
希望这会有所帮助。