2012-03-23 64 views
0

我試圖從一個單獨的程序集中執行Q​​uartz.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關於同一類型的問題,但它沒有一個明確的答案。

還有什麼我需要做的,這樣的作業可以加載和執行?

回答

0

解決這個問題的想法變得簡單了一點。這是由我的程序集導致的,測試作業是爲x86而不是AnyCPU(或x64)編譯並使用Windows 7 x64。

相關問題