Quartz.net:计划代码在自动部署后无法运行,在本地运行

Quartz.net: Scheduled code not working after deployment automatically, working locally

我希望在预定的时间线(每周一次)从我的 MVC 网站发送一封电子邮件。该代码在本地 运行 到 Visual Studio 的预定时间运行良好。但是,部署到服务器后没有被触发。

当我在部署后点击一次网站时它开始工作,因为 Applciaiton_Start 事件在我触发 Quartz 引擎的地方被触发。

有没有一种方法可以在不访问网站的情况下触发引擎。 Quartz 是否总是这样工作,您必须点击应用程序一次。

不,你不能。 Quartz.net,在您的情况下,存在于您的应用程序中。
当应用程序池被回收时,您的调度程序就会死亡。

这不是 Quartz.Net 的问题,而是 IIS 及其管理应用程序池的方式。

我想您最好的选择是使用 Windows Service 中的调度程序。

另一种选择是创建一个简单的应用程序(控制台)并通过系统任务计划程序 运行 它。使用此选项,您可能希望摆脱 Quartz.Net.

第三个选项是使用某些外部服务(如 Uptime Robot or Pingdom)让您的应用程序保持活动状态。我不会选择这个选项,但这是一种可能性。

如果您选择第三个选项,我建议您使用 JobStore,这样您就可以将您的工作保存在数据库中,并且不会错过任何机会。