是否可以在 Windows 服务中包含 Quartz.NET 库?

Is it possible to include Quartz.NET library in Windows Service?

我目前正在开发一些 Windows 服务,每 10 分钟同步一次日历。我已经编写了执行此操作的控制台应用程序,但是当我尝试将其实现为 Windows 服务时,它会在启动时中断。当我删除负责使用 Quartz.NET 库的代码时,服务启动并记录一切正常。每次执行新作业时,我都会收到 windows 消息:

The CalendarSync service on local computer started and then stopped. Some Services stop automatically if they are not in use by another services or programs.

为什么我不能在 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);
        }

    }

参考库有问题。我已经在 Visual Blend 文件夹中安装了 4.x 版本,并且是我项目中的最新版本。那引起了冲突。当我将服务创建为一个新项目并重新下载它工作的所有库时。

所以,是的,如果完全有可能将 Quartz.NET 包含在 windows 服务中,如果由于某种原因服务停止,那不是因为 Quartz。