我目前正在开发一些每隔10分钟同步日历的Windows服务。我编写了这样做的控制台应用程序,但是当我尝试将其作为Windows服务实现时,它会在启动时中断。当我删除负责使用Quartz.NET库的代码时,服务启动并记录所有内容。每次实施新Job时,我都会收到Windows消息:
本地计算机上的CalendarSync服务已启动然后停止。如果某些服务未被其他服务或程序使用,则会自动停止。
有什么理由不能在Windows服务中使用这个库吗?
protected override void OnStart(string[] args)
{
LogLibrary.Logs.WriteErrorLog("Calendar service started");
OnStartDo();
}
private static void OnStartDo()
{
try {
IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
scheduler.Start();
IJobDetail job = JobBuilder.Create<Job>()
.WithIdentity("job1", "group1")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(10)
.RepeatForever())
.Build();
scheduler.ScheduleJob(job, trigger);
}
catch (SchedulerException se)
{
LogLibrary.Logs.WriteErrorLog(se);
}
}
答案 0 :(得分:0)
参考库存在问题。我已在Visual Blend文件夹中安装了4.x版本,并在我的项目中安装了最新版本。这导致了冲突。当我将服务创建为一个新项目并重新加载它所有的库时。
所以,是的,如果完全有可能在Windows服务中包含Quartz.NET,并且由于某种原因服务停止,那不是因为Quartz。