我正在使用 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/ .对这个主题特别感兴趣的是以下博客文章:
关于quartz.net - 无法在 Quartz.NET 中加载作业程序集错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6519285/