2009-10-20 52 views
9

我们的.NET 2.0应用程序之一开始随机消失。在事件日志中没有记录,Dr.Watson不生成故障转储,没有任何内容...如何解决刚刚消失的.NET应用程序?

如何解决此应用程序的故障?

+0

您是否进行任何p/invoke调用? – 2009-10-20 13:19:07

+0

不是直接。我们使用Crystal Reports,它可以进行这种调用。无论如何,应用程序工作了一年没有问题。 – alex 2009-10-20 13:20:25

+0

你使用任何COM组件吗? – 2009-10-20 13:25:26

回答

5

1)将事件处理程序附加到AppDomain.UnhandledException事件并记录异常对象。

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); 

2)安装一个线程异常处理

Application.ThreadException += 
    new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); 

WPF和Silverlight应用程序使用更多的异常处理程序,例如分别是Application.DispatcherUnhandledException和Application.UnhandledException,但在这种情况下这些不是您感兴趣的。我包括他们的完整性。

+1

它被处理 - 没有日志记录。 – alex 2009-10-20 13:21:31

2

修改代码以在每个相关部分之后包含日志步骤,然后检查日志文件以查看其发生的位置。

如果它甚至不启动,那么这会告诉你的东西太...

3

我们也有类似的问题。我们有一个AppDomain.UnhandledException的事件,但它甚至跳过了这个。原来,这是我们测试剪贴板内容时导致的SystemAccessViolation。

如果它是类似的(EG跳过AppDomain.UnhandledException事件),那么我会建议记录来自您的流程之外的互操作性和“敌对”数据调用的所有内容,并且代码将全部检查。我们花了几个星期的时间来追踪它,并修改了一行。

另外,打开VS中的MDAs并运行你的程序,看看你是否得到错误。

相关问题