我试图从一个单独的程序集中执行Quartz.net作业。该类从IJob接口继承,实现了Execute方法,并已被复制到同一文件夹中Quartz.Server.exe,但我发现了以下错误:从一个单独的程序集执行Quartz.NET作业
Error scheduling jobs: Could not load file or assembly 'TestJobs' or one of its dependencies. An attempt was made to load a p rogram with an incorrect format. System.BadImageFormatException: Could not load file or assembly 'TestJobs' or on e of its dependencies. An attempt was made to load a program with an incorrect format. File name: 'TestJobs' at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, Bool ean loadTypeFromPartialName, ObjectHandleOnStack type) ... (snipped)
我使用version 2 beta 2。服务器应用程序已解压到单独的文件夹中,并且正在通过在命令行运行Quartz.Server.exe来执行。
我的样本作业是一个名为TestsJobs一个非常基本的工作一个单独的程序写入到一个文本文件:
public class TestJob : IJob
{
public void Execute(IJobExecutionContext context)
{
try
{
string path = @"c:\test.txt";
while (true)
{
var line = DateTime.Now.ToString() + " - " + Guid.NewGuid();
File.AppendAllText(path, line);
Thread.Sleep(500);
}
catch (Exception ex)
{
throw new JobExecutionException("Error", ex, false);
}
}
}
}
这是一个基本的类库项目目标.NET 4.复制到石英运行Quartz.Server.exe的.Net服务器文件夹。
的quartz_jobs.xml文件具有使用默认文件工作组,只用作业类型改变,以反映新的组件和类:
<job-type>TestJobs.TestJob, TestJobs</job-type>
想这可能是一些做框架版本,但Quartz.net似乎也使用.NET 4(Quartz.dll依赖v4程序集)。
还有another question on SO关于同一类型的问题,但它没有一个明确的答案。
还有什么我需要做的,这样的作业可以加载和执行?