C# 如何在Windows服务中使用Quartz.Net计划任务?

C# 如何在Windows服务中使用Quartz.Net计划任务?,c#,.net,windows,windows-services,quartz.net,C#,.net,Windows,Windows Services,Quartz.net,我在VS中创建了一个windows服务项目,并在其中配置Quartz.Net以立即运行任务。注册任务的代码毫无例外地运行,但就调试所知,任务从未执行 我不能确定,因为调试Windows服务非常不同。我这样做的方式是从代码中以编程方式启动调试器。Quartz.Net在单独的线程上运行作业,但我不确定VS2010在调试Windows服务时是否可以看到其他正在运行的线程 以前有人做过我想做的事吗?任何提示都将不胜感激 另外,我不想使用Quartz.Net自己的服务 作业不执行的最常见原因之一是,您需要

我在VS中创建了一个windows服务项目,并在其中配置Quartz.Net以立即运行任务。注册任务的代码毫无例外地运行,但就调试所知,任务从未执行

我不能确定,因为调试Windows服务非常不同。我这样做的方式是从代码中以编程方式启动调试器。Quartz.Net在单独的线程上运行作业,但我不确定VS2010在调试Windows服务时是否可以看到其他正在运行的线程

以前有人做过我想做的事吗?任何提示都将不胜感激


另外,我不想使用Quartz.Net自己的服务

作业不执行的最常见原因之一是,您需要在调度程序实例上调用Start()方法


但是如果我们没有创建调度器和注册作业的代码片段,很难说问题出在哪里。

我以前在Windows服务中成功使用过Quart.NET。当服务启动时,我创建调度程序工厂,然后获取调度程序。然后启动调度器,它隐式读取我在服务的App.config中指定的配置XML

Quartz.NET基本设置:


App.config设置问题:

我发现这有点过时,但在各种搜索中都出现过多次

一定要看看这篇文章,它在实例化调度器时使用XML配置。

如果您不想使用XML(动态创建的任务等),请将上面文章中的“运行”过程替换为以下内容:

    public void Run()
    {
        // construct a scheduler factory
        ISchedulerFactory schedulerFactory = new StdSchedulerFactory();

        _scheduler = schedulerFactory.GetScheduler();

        IJobDetail job = JobBuilder.Create<TaskOne>()
                .WithIdentity("TaskOne", "TaskOneGroup")
                .Build();
        ITrigger trigger = TriggerBuilder.Create()
        .WithIdentity("TaskOne", "TaskOneGroup")
        .StartNow()
        .WithSimpleSchedule(x => x.WithIntervalInSeconds(20).RepeatForever())
        .Build();
        _scheduler.ScheduleJob(job, trigger);
        _scheduler.TriggerJob(job.Key);

        _scheduler.Start();
    }
public void Run()
{
//构造调度程序工厂
isSchedulerFactory schedulerFactory=新StdSchedulerFactory();
_scheduler=schedulerFactory.GetScheduler();
IJobDetail job=JobBuilder.Create()
.WithIdentity(“TaskOne”、“TaskOneGroup”)
.Build();
ITrigger trigger=TriggerBuilder.Create()
.WithIdentity(“TaskOne”、“TaskOneGroup”)
.StartNow()
.WithSimpleSchedule(x=>x.WithIntervalInSeconds(20).RepeatForever())
.Build();
_ScheduleJob(作业,触发器);
_调度程序.TriggerJob(job.Key);
_scheduler.Start();
}
注意-使用Quartz.NET 2.1.2、.NET 4


干杯

url不存在。有实施相同url的分步指南: