8

初めてのタイマー ジョブを作成していて、それをデバッグしたいと考えています。機能を使用してタイマー ジョブをインストールし、それを Web アプリケーションの JobDefinitions コレクションに追加し、5 分ごとに実行する SPMinuteSchedule を追加しました (テスト目的)。

次に、Visual Studio でデバッガーを WebApplication のプロセス、Central Admin プロセス、および OWSTIMER.exe プロセスにアタッチしようとしましたが、TimerJob の Execute メソッドにデバッグしません。ここで何が欠けていますか。

PSタイマージョブのステータスは成功したため、実行中です。変...

4

3 に答える 3

9

TimerJobs をデバッグしているとき、Execute メソッドの最初の先頭にアサーションを挿入しますが、これは常に失敗します。これにより、Execute メソッドが呼び出されるたびにポップアップが表示されるため、TimerJob が開始されたことを確認し、デバッガーをアタッチするのに十分な時間を確保できます。もちろん、ライブに移行する前にアサーションを削除する必要があります。

System.Diagnostics.Trace.Assert(false);

もう 1 つの重要な点は、新しい DLL を展開した後にタイマー サービスを再起動することです。それ以外の場合、Timer Service は古い DLL から TimerJob を実行します。

于 2009-06-12T09:17:22.657 に答える
4

Debugger.Launch()

于 2009-06-14T12:38:26.790 に答える