如何调试事件查看器中记录的.NET错误?

时间:2010-03-31 15:06:40

标签: .net windows debugging logging

您好我发现我的应用程序会导致一些记录在事件日志中的错误。

它声明:

NET Runtime 2.0 Error 

    EventType clr20r3, P1 *****.exe, P2 1.0.0.0, P3 4b2a572f, P4 system.web.services, P5 2.0.0.0, P6 4889df18, P7 bc, P8 65, P9 system.net.webexception, P10 NIL.

我怎样才能知道发生了什么?我在本地试过那个应用程序,一切正常。

4 个答案:

答案 0 :(得分:3)

您的应用程序因未处理的异常而崩溃。 Watson日志不足以找到原因。为AppDomain.CurrentDomain.UnhandledException事件编写一个事件处理程序,让它将e.ExceptionObject.ToString()写入事件日志,这样你就可以得到一个好的堆栈跟踪,显示它被轰炸的原因和位置。

答案 1 :(得分:1)

您能描述一下它的应用类型吗?它在做什么,是交互式还是非交互式?

实际错误是system.net.webexception - 这是与网页或网络服务进行通信的某种形式的问题。这本身就表明,如果它在你尝试时工作正常可能会出现间歇性错误。

当远程运行时,这些或某些东西配置错误 - 与您的环境不同。例如,您是否使用远程运行应用程序时不可用的内部DNS条目?

您需要捕获应用程序中的所有异常(例如try { } catch { }方法中的整体main)并将异常记录到文件中,或者让它通过电子邮件发送给您自己,所以你可以更详细地看到发生了什么。

答案 2 :(得分:1)

它看起来像一个未处理的异常。如果它是在Web应用程序或服务中生成的,您可以尝试在global.asax文件中放置一个全局异常处理程序。有关示例,请参阅here。您可以捕获错误并将更好的信息输出到事件日志中。

答案 3 :(得分:1)

以下是您的事件日志条目中的简单说明

P4 system.web.services -  module that was throwing the exception 
P9 system.net.webexception  - Exception Type
P8 65 - IL Offset where the exception was thrown

这些是用于获取异常调用堆栈的Watson存储桶。从.NET 2.0开始,Watson报告就有了这些信息。

以上解释为MSDN article