一個特殊的要求讓我在quartz.net中實現了一個自定義觸發器。 (Version 2.3.0)自定義觸發器持久代表必須包含在quartz.dll中嗎?
我遇到的問題是註冊適當的持久委託。
有
- 主要項目,它引用了所需的Quartz.dll並啓動調度
- 核心項目是由「主要項目」中引用的實例,並在功能擴展了項目也可以通過其他項目訪問
現在「核心項目」是我聲明瞭自定義觸發器實現和所屬的自定義持久委託的地方。
在調度程序實例「主要項目」的配置數據通過配置文件提供,在這裏我補充說:
<add key="quartz.jobStore.driverDelegateInitString" value="triggerPersistenceDelegateClasses=SolutionName.QuartzService.Core.Triggers.CustomTriggerPersistenceDelegate, SolutionName.QuartzService.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
(我也試圖與SolutionName.QuartzService.Core.Triggers.CustomTriggerPersistenceDelegate
之前)
當我開始我看到試圖註冊持久性委託失敗:
Unhandled Exception: Quartz.SchedulerConfigException: Failure occured during job recovery. ---> Quartz.Impl.AdoJobStore.NoSuchDelegateException: Couldn't instantiate delegate: Error instantiating TriggerPersistenceDelegate of type: SolutionName.QuartzService.Core.Triggers.CustomTriggerPersistenceDelegate ---> Quartz.Impl.AdoJobStore.NoSuchDelegateException: Error instantiating TriggerPersistenceDelegate of type: SolutionName.QuartzService.Core.Triggers.CustomTriggerPersistenceDelegate ---> System.TypeLoadException: Could not load type 'SolutionName.QuartzService.Core.Triggers.CustomTriggerPersistenceDelegate' from assembly 'Quartz, Version=2.3.0.0, Culture=neutral, PublicKeyToken=null'.
T他明確提到的裝配讓我感到困惑。我是否必須編譯包括我的自定義持久委託在內的Quartz源代碼才能找到它?還是我錯過了別的?