У меня есть работа с timed quartz.net, работающая отлично на моей машине dev, но после ее развертывания на удаленном сервере она не запускается. Я считаю, что работа запланирована нормально, потому что, если я вернусь назад, она сообщит мне, что работа уже существует (однако я обычно проверяю обратную передачу). Код электронной почты определенно работает, поскольку событие «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
@MarkoLahma Спасибо, но насколько я знаю, Quartz.NET используется, чтобы не использовать Win Service. Итак, если мы должны использовать Win Service, нужно ли использовать Quartz.net? Есть ли другое решение на стороне приложения? Если да, можете ли вы привести пример для приложения MVC? –
@Christof you * can * host Quartz внутри приложения ASP.NET, но он имеет свои подводные камни, как отмечено. Вы * должны * размещать Quartz.NET предпочтительно внутри службы Windows, а также иметь интерфейс управления с помощью ASP.NET MVC и т. Д., Который не запускает задания, просто управляет расписаниями и заданиями. –