2016-06-15 26 views
0

特別な要件により、私はquartz.netでカスタムトリガーを実装することができました。 (バージョン2.3.0)カスタムトリガ永続性デリゲートをquartz.dllに含める必要がありますか?

問題は、適切な永続デリゲートを登録することです。

必要なのQuartz.dllを参照し、

  • コアプロジェクトは、「メインプロジェクト」によって参照されているスケジューラのインスタンスを起動し、機能的にそのプロジェクトを拡張

    • メインプロジェクトがあること

    "コアプロジェクト"は、私がカスタムトリガーの実装と所属するカスタムパーシスタンスデリゲートの両方を宣言した場所です。スケジューラ・インスタンスの「メインプロジェクト」コンフィギュレーション・データで

    は、configファイルを介して提供され、ここで私がコメントを追加しました:

    <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 - 明示的に言及されたアセンブリは私を混乱させました。カスタム永続デリゲートを含むQuartzソースコードをコンパイルする必要がありますか?あるいは私は何か他のものを逃していますか

  • 答えて

    0

    よく答えは明らかです:いいえ。

    私の場合、間違った設定名を使用したようです。

    私は

    <add key="quartz.jobStore.driverDelegateInitString" value="triggerPersistenceDelegateTypes=SolutionName.QuartzService.Core.Triggers.CustomTriggerPersistenceDelegate, SolutionName.QuartzService.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />

    <add key="quartz.jobStore.driverDelegateInitString" value="triggerPersistenceDelegateClasses=SolutionName.QuartzService.Core.Triggers.CustomTriggerPersistenceDelegate, SolutionName.QuartzService.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />

    を交換し、現在起動スケジューラからのより多くの苦情はありません。

    関連する問題