我有一个用 .Net Framework 3.5 编写的应用程序。它是在 Windows Server 2003 R2 上运行的服务。该应用程序有一个全局异常处理,包括一个在 try-catch 之外发生的所有异常都被这个全局异常处理捕获(通过 AppDomain.UnhandledException 完成)。
无论如何,应用程序崩溃了。崩溃后,我可以在 Windows 的事件查看器中看到“应用程序错误”。它告诉我:
Faulting application name: MyApplication.exe
Faulting module name: KERNELBASE.DLL, version 6.3.9600.18007
Exception code: 0xe06d7363
此代码在 frmMain_Load 中:
AddHandler Application.ThreadException, AddressOf ThreadExceptionHandler
AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf UnhandledExceptionHandler
这是对未处理异常的处理:
Private Shared Sub ThreadExceptionHandler(ByVal sender As System.Object, ByVal e As System.Threading.ThreadExceptionEventArgs)
HandleException(e.Exception, False)
End Sub
Private Shared Sub UnhandledExceptionHandler(ByVal sender As System.Object, ByVal e As System.UnhandledExceptionEventArgs)
HandleException(CType(e.ExceptionObject, Exception), e.IsTerminating)
End Sub
Private Shared Sub HandleException(ByVal p_Exception As Exception, ByVal p_Kill As Boolean)
Try
ERROR_LOG.AddFatalError(New Exception("Unbehandelte Ausnahme." & If(p_Kill, " Die Anwendung wird beendet.", ""), p_Exception))
Catch
End Try
If p_Kill Then System.Environment.Exit(-1)
End Sub
更新 1)我在代码的不同位置插入了未捕获的异常,但每次处理异常时。这是在我的开发环境中。也许,我必须在服务器上对此进行测试。
我有什么问题?我该如何分析这个错误?欢迎任何提示。