用户报告他们退出应用程序没有任何错误,我在事件查看器中有很多这样的错误:
EventType clr20r3,P1 main.exe,P2 1.0.0.0,P3 4f6b05ad,P4 system.drawing,P5 2.0.0.0,P6 4333aeaf,P7 17e,P8 20,P9 system.argumentexception ,P10 NIL。
EventType clr20r3,P1 main.exe,P2 1.0.0.0,P3 4f6b05ad,P4 microsoft.visualbasic,P5 8.0.0.0,P6 4333d6d8,P7 5e,P8 1e1,P9 34ssps20bdj3nj0wmit5kamzhvglfzcc,P10无。
EventType clr20r3,P1 main.exe,P2 1.0.0.0,P3 4f6b05ad,P4 microsoft.visualbasic,P5 8.0.0.0,P6 4333d6d8,P7 85,P8 a2,P9 system.componentmodel.win32 ,P10 NIL。
我们在Windows Server 2003上安装了终端服务器,一天中我有大约500个错误。
有什么建议吗?
答案 0 :(得分:2)
看起来你得到了一些未处理的异常。如果.NET应用程序遇到未被Try / Catch块捕获的异常,并且没有调试器来显示它,则应用程序将终止。
添加一些异常处理和日志记录到您的应用程序,以便您可以查看异常的所有详细信息。我建议在显示或记录时使用异常对象的ToString
方法,因为这将显示异常及其所有内部异常的异常类型,消息和堆栈跟踪。一旦掌握了这些信息,就应该更容易确定出现了什么问题以及如何解决它。
要添加异常处理,如果您使用的是VB的应用程序框架,请转到项目属性页面的“应用程序”选项卡,然后单击“查看应用程序事件”按钮。在MyApplication
类中,为UnhandledException
事件添加事件处理程序,例如:
Private Sub MyApplication_UnhandledException(ByVal sender As Object, ByVal e As UnhandledExceptionEventArgs) Handles Me.UnhandledException
MyLog.WriteEntry(e.Exception.ToString())
End Sub
但是,如果您不使用应用程序框架,请转到应用程序的入口点(Sub Main
)并在该方法的所有代码周围放置一个Try / Catch块,例如:
Public Sub Main
Try
' ...
Catch ex As Exception
MyLog.WriteEntry(ex.ToString())
End Try
End Sub
这些示例假设您有一个MyLog
类,其中包含共享WriteEntry
方法。显然,您需要在这样的类中实现自己的日志记录。