.Net/c# 2.0 Windows サービスがあります。エントリ ポイントは、問題を通知し、サービスが正常に動作し続けることを可能にする try catch ブロックにラップされていますが、サーバーのアプリケーション イベント ログを見ると、サービスが停止する原因となっている多数の「EventType clr20r3」エラーが表示されます。予想外。catch ブロックには「catch (Exception ex)」があり、例外を再スローしません。
各 SQL コマンドは「CommandType.StoredProcedure」タイプであり、SqlDataReader で実行されます。これらの sproc 呼び出しは 99% の確率で正しく機能し、すべて徹底的に単体テスト、プロファイリング、および QA が行われています。念のため、これらの呼び出しを try catch ブロックでさらにラップしましたが、まだこれらの未処理の例外が発生しています。
これは本番環境のみであり、開発環境またはステージング環境では複製できません (負荷が高い場合でも)。
エラー処理でこの特定のエラーがキャッチされないのはなぜですか? 問題の根本原因について詳細を把握する方法はありますか?
イベント ログの例を次に示します。
EventType clr20r3, P1 RDC.OrderProcessorService, P2 1.0.0.0, P3 4ae6a0d0, P4 system.data, P5 2.0.0.0, P6 4889deaf, P7 2490, P8 2c, P9 system.data.sqlclient.sql, P10 NIL.
さらに
The Order Processor service terminated unexpectedly. It has done this 1 time(s). The following corrective action will be taken in 60000 milliseconds: Restart the service.