quartz.net - 无法在 Quartz.NET 中加载作业程序集错误

标签 quartz.net

我正在使用 Quartz.NET 调度程序作为独立的 Windows 服务,而我从 ASP.NET 应用程序中调度作业。我有一个单独的作业程序集,但出现以下错误

无法加载文件或程序集“AV.Scheduler.Jobs,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。

这是我的代码,

        JobDetail jobDetail = new JobDetail("testJob", null, typeof(TestJob));

        //created trigger which will fire every minute starting immediately
        SimpleTrigger trigger = new SimpleTrigger("testTrigger",
                                null,
                                DateTime.UtcNow,
                                null,
                                1,
                                TimeSpan.FromMinutes(1));

        scheduler.ScheduleJob(jobDetail, trigger);

我在最后一行收到错误。

最佳答案

虽然已经回答(在评论中),但我在这里添加了一个答案以供将来引用。

为了让 Quartz 服务执行您的自定义作业,它需要能够以某种方式定位作业程序集。正如您所建议的,一种解决方案是将其添加为对启动和停止 Quartz 服务的控制台应用程序的引用。但是,控制台应用程序并不总是存在。如果是这种情况,您需要将作业程序集放置在 Quartz.dll 所在的同一文件夹中(服务使用的 dll 版本)。

Quartz.Net 的优秀资源是 http://jvilalta.blogspot.com/ .对这个主题特别感兴趣的是以下博客文章:

  • Getting Started With Quartz.Net: Part 1
  • Creating a Custom Job in Quartz.Net
  • 关于quartz.net - 无法在 Quartz.NET 中加载作业程序集错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6519285/

    相关文章:

    quartz.net - 在 Quartz.Net 中为双周作业配置 CronString

    c# - 失败作业的 Quartz.NET JobListener

    c# - 使用 ScheduleJobs 调用计划

    c# - 如何配置 Quartz.net 数据库架构名称?

    c# - 设置 Topshelf 和 Quartz.Net 控制台应用程序时从 Ninject 访问对象

    c# - 使用 Quartz.NET 和 Simple Injector 进行构造函数注入(inject)

    Quartz.net 配置可使用 XML,但在使用代码配置时会引发数据库连接错误

    c# - 如何设置 Quartz.NET 以安排电子邮件

    c# - 使用 Quartz .NET 和 AdoJobStore 调度通用 IJob<>