2015-06-24 46 views
3

我們有一個託管在IIS 8.0上的Intranet應用程序。Quartz調度程序在應用程序池回收後不執行作業(.Net)

我們有一些網絡方法可用,需要在特定時間執行。

因此,我們使用Quartz調度程序來調度執行Web方法的作業。在global.asax的Application_Start事件中,我們編寫了代碼來啓動調度程序。

爲了保持調度程序正常運行,應用程序池應始終處於運行模式,因此我們設置了屬性startMode =「AlwaysRunning」,並且應啓動應用程序,以便我們設置應用程序屬性preloadEnabled =「True 」。

我們正在每1740分鐘(29小時,默認時間)回收應用程序池。

這裏的問題是:

如果我有計劃在早上3:00工作。我的應用程序池處於運行狀態。

我在計劃時間前一天的下午6:00瀏覽了應用程序。

根據回收時間,我的應用程序池已在2:00 AM和3:00 AM回收,但我的應用程序未被ping通,但我的應用程序池處於運行狀態。

當應用程序池被回收時,應用程序池將再次啓動(因爲屬性startMode =「AlwaysRunning」),但是如果該工作進程會不同,則會啓動該進程ID。

由於應用程序池石英的回收沒有按照時間表執行該作業。如果我在應用程序池回收後瀏覽應用程序,則石英將按照時間表執行作業。

任何人都可以在最早的時候幫助我嗎?

感謝您的期待。

回答

3

如果您的IIS 8.0在Sever 2012操作系統上運行,您將需要打開「應用程序初始化」功能。
請訪問this link瞭解更多信息。
後,才加入,該屬性的功能「preloadEnabled =「真「」​​將是有效的。
請讓我知道如果你是在任何其他操作系統面臨這個問題。 希望這有助於。

+0

感謝隊友。它起作用了。啓用此功能後,調度程序不會中斷任何工作。 –

相關問題