我試圖從一個單獨的程序集中執行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關於同一類型的問題,但它沒有一個明確的答案。
還有什麼我需要做的,這樣的作業可以加載和執行?