2012-01-15 3 views
1

私は日々のイベントをスケジュールするためにAzureワーカーロールでQuartz.NETを設定しようとしています。多くの試行錯誤の後、私はターゲットメソッド内のコードの1行を含めることは、イベントがQuartz.NET exampleオフすべて特定のコードがメソッド内にあるときにQuartz.NETがトリガーしない

ビルでトリガーを取得しないことを引き起こしていることがわかってきました、私はIJobクラスを持っていますExecuteメソッドをオーバーライドしました(スケジューラ&トリガに登録されています)。

違反行(コメント付き)が削除されると、Trace.WriteLine文のブレークポイントにヒットできます。存在すると、ブレークポイントは決してヒットせず、出力は他の場所には存在しません。

コード:

public class MyUpdaterJob : IJob 
{ 
    public MyUpdaterJob() 
    { 
    } 

    public void Execute(JobExecutionContext context) 
    { 
     Trace.WriteLine("-- Yay - Job called"); 

     // Removing this line will result in the breakpoint above being able to be hit 
     MyUpdateWorker updateWorker = new MyUpdateWorker(); 

     var logDate = context.FireTimeUtc.Value.AddHours(-1); 

     // [...] 
    } 
} 

私はそれはそれは、このイベントをトリガしないように原因となる評価されるかもしれないものにと全く途方に暮れてよ。助言がありますか?

  • 「MyUpdateWorkerは」これは、現在のAzure Workerロールとして

答えて

0

うわー。

このプロジェクトの「有機的な」成長の結果、IJob実装を含むライブラリは以前はコンソールアプリでした。これは数週間前に出力を「クラスライブラリ」に切り替えました。

プラットフォームターゲットは、x86のみに設定されていました。他のすべては「Any CPU」、おそらく64ビットとしてコンパイルされていました。

これを更新するために手動で.csprojファイルを編集する必要がありましたが、以前のconsole-project-now-libraryが任意のCPUに設定された時点で正しくトリガーされるようになりました。

1

を実行している別のライブラリ

  • である私は、私はそれかどうかを確認するためにあなたのMyUpdateWorker()クラスのコンストラクタを確認したいと思いますすべて正常に動作します。おそらく診断ログにログを記録して、そこに原因を示すものがあるかどうかを確認してください。通常、私はAzureでライブラリが見つからないという問題を抱えています。おそらく、依存関係がないかもしれません。これは奇妙なものだった - チェックする

    ただ、いくつかのこと(だけなので、私はまだウォーミングアップだ今朝2杯のコーヒーを持っていた)

  • 関連する問題