-1

Windows サービス アプリケーションがあります。すべてのコードを try ブロック内に配置しましたが、それでもアプリケーションが何度かクラッシュします。以下は、イベント ビューアーから取得したエラー メッセージです。コードからは何も理解できません。誰でもこれで私を助けてくれますか

Fault bucket , type 0
Event Name: CLR20r3
Response: Not available
Cab Id: 0

Problem signature:
P1: bgfcimportjobs.exe
P2: 1.0.0.12
P3: 4f8ee332
P4: mscorlib
P5: 2.0.0.0
P6: 4e1539fa
P7: 349e
P8: 1c5
P9: System.IO.IOException
P10: 

Attached files:

These files may be available here:
C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_bgfcimportjobs.e_70609b5d8d50b31a8e1a14872a72bb7a82791b3a_2d2ac10e

Analysis symbol: 
Rechecking for solution: 0
Report Id: 1f7048c8-8f63-11e1-8875-b499ba03bf80
Report Status: 4

前もって感謝します!!!

4

6 に答える 6

1

あなたのコードは Try ブロックにありますが、try の後に Catch セクションがありますか?

try
{
   some code...
}
catch(Exception e) 
{
    string message = e.Message;
}
于 2012-04-26T16:14:24.933 に答える
1

それがすべてtry-catch内にあると本当に確信していますか? すべてのイベント ハンドラーなどの周りに追加する必要があります。

これは IO 例外であるため、ファイルを読み書きするコードはありますか?

于 2012-04-26T16:11:52.540 に答える
0

tryブロックがスローしているという例外をキャッチしていない可能性があります。

于 2012-04-26T17:12:20.557 に答える
0

VS2010を開きます。[デバッグ]>[例外]メニューに移動します。次に、[スロー]カテゴリの下のすべてのチェックボックスを選択します。

サービスを実行し、[デバッグ]>[プロセスにアタッチ]を使用してプロセスをアタッチします。

これで、エラーのいずれかが発生した場合、実行によって問題が発生したコードが通知されます。

于 2012-04-27T08:56:56.967 に答える
0

キャッチされた例外を何らかの方法でログに記録して、それが何であるかを実際に確認できるようにしていますか?

また、Debugger.Launch() を実行することもできます - http://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.launch.aspx - そしてそれをステップ実行して、何が起こっているかを確認します

于 2012-04-26T16:12:53.743 に答える
0

適切な例外をキャッチしていますか?
少なくともSystem.IO をキャッチする必要があります。IOExceptionまたはその基本クラス。catchブロックでは、例外全体をログに記録する必要があります。つまり、次のようになります

try
{
  your code...
}
catch(IOException e) 
{
  YourLogger.WriteMessage(e);
}

したがって、例外のスタック トレースも取得します。

于 2012-04-26T16:55:26.613 に答える