1
我的計時器quartz.net工作正常,但是一旦部署到遠程服務器,它就不會觸發。我相信工作安排好,因爲如果我回發,它告訴我工作已經存在(但我通常會檢查回傳)。電子郵件代碼絕對有效,因爲'button1_click'事件成功發送電子郵件。Quartz.Net調度程序在本地工作,但不在遠程主機上
我知道我在移除服務器上擁有完全或中等信任度。我的主人說他們不會施加限制,他們知道哪些會影響它。我需要做的其他事情才能讓它運行?
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
}
}
}
非常感謝。你是對的,範圍是問題......! – Glinkot 2010-05-05 02:11:33
@MarkoLahma感謝但據我所知Quartz.NET是爲了不使用Win服務。所以,如果我們應該使用Win服務,是否需要使用Quartz.net?應用程序方面是否有另一種解決方案如果是這樣,你可以給MVC應用程序的例子嗎? – 2015-11-08 12:46:45
@Christof你*可以*在ASP.NET應用程序中託管Quartz,但它有其缺陷,如上所述。你*應該*主辦Quartz.NET最好在一個Windows服務,你也可以有管理前端使用ASP.NET MVC等不運行的工作,只是管理日程安排和工作。 – 2015-11-08 15:23:26