-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-catch 之内吗?您需要在所有事件处理程序和类似的东西周围添加它。

由于这是一个 IO 异常,你有读/写文件的代码吗?

于 2012-04-26T16:11:52.540 回答
1

您的代码位于 Try 块中,但您尝试后是否有 Catch 部分?

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

你抓住了正确的例外吗?
你至少应该赶上System.IO。IOException或其基类。
catch块中,您应该记录整个异常,即:

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

因此,您还可以获得异常的堆栈跟踪。

于 2012-04-26T16:55:26.613 回答
0

您是否以某种方式记录捕获的异常,以便您可以实际看到它是什么?

此外 - 您可以运行 Debugger.Launch() - http://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.launch.aspx - 并逐步查看发生了什么

于 2012-04-26T16:12:53.743 回答
0

可能是您没有捕获 try 块抛出的异常。

于 2012-04-26T17:12:20.557 回答
0

打开 VS 2010。转到 Debug > Exceptions 菜单。现在选中 Throw 类别下的所有复选框。

使用 Debug > Attach to Process 执行服务并附加进程。

现在,如果出现任何错误,执行将告诉引发问题的代码。

于 2012-04-27T08:56:56.967 回答