ここに役立つ情報があります。
私はサービスを書くときに、通常、このAppDomain
イベントにUnhandledException
というイベントハンドラを追加します。
これは、catch-all例外ハンドラの一種で、多くの場合に便利で、エラー処理の改善に役立ちます。
// Add this code to the Service Start method or the constructor
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
// Then add this method to your service class, it will be invoked when
// your code encounters an exception that is not trapped by a try/catch/finally
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
var ex = e.ExceptionObject as Exception;
Trace.TraceError("Unhandled Exception occurred in service: {0}", ex);
}
Trace
のログを、必要に応じて独自のログフレームワークに置き換えることができます。
これが役に立ちます。
あなたの問題を理解するのに役立つような、より多くの情報を提供してください – Esperadoce
あなたのプログラムが依存しているすべての依存関係を中断しているサービスに依存している場合、通常です。この問題を回避するには、特定の時刻に更新をスケジュールするか、完全に無効にしてから手動で実行します。 – Rinos
どのようなログファイルですか?私は、ウィンドウの更新が失敗したときにハングが発生することを示すWindowsアプリケーションイベントログの一部を提供することができます –