Quartz.Net调度程序在本地工作,但不在远程主机上工作

我有一个定时的quartz.net工作在我的开发机器上工作正常,但一旦部署到远程服务器它不会触发。 我相信工作安排好,因为如果我回发,它告诉我工作已经存在(我通常会检查回发)。 电子邮件代码肯定有效,因为’button1_click’事件成功发送电子邮件。

我知道我对删除服务器有完全或中等的信任。 我的主人说他们没有应用他们知道会影响它的限制。 为了让它运行我需要做的任何其他事情?

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Quartz; using Quartz.Impl; using Quartz.Core; using Aspose.Network.Mail; using Aspose.Network; using Aspose.Network.Mime; using System.Text; namespace QuartzTestASP { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { ISchedulerFactory schedFact = new StdSchedulerFactory(); IScheduler sched = schedFact.GetScheduler(); JobDetail jobDetail = new JobDetail("testJob2", null, typeof(testJob)); //Trigger trigger = TriggerUtils.MakeMinutelyTrigger(1, 3); Trigger trigger = TriggerUtils.MakeSecondlyTrigger(10, 5); trigger.StartTimeUtc = DateTime.UtcNow; trigger.Name = "TriggertheTest"; sched.Start(); sched.ScheduleJob(jobDetail, trigger); } } protected void Button1_Click1(object sender, EventArgs e) { myutil.sendEmail(); } } class testJob : IStatefulJob { public testJob() { } public void Execute(JobExecutionContext context) { myutil.sendEmail(); } } public static class myutil { public static void sendEmail() { // tested code lives here and works fine when called from elsewhere } } } 

调度程序工厂应该是您的应用程序的全局工具。 换句话说,在Global.asax或类似的声明它,它有效地为您提供了一个全局实例来操作。 如果运行ASP.NET,则应在应用程序启动时启动调度程序。

当心想法。 ASP.NET回收其进程,这些进程有效地导致调度程序关闭(没有作业将运行),直到下一个下一个请求进入Web服务器再次启动调度程序。 推荐的方法是使用Windows服务运行Quartz.NET作业。