程序吐出其中一个框,表示发生了未处理的异常,应用程序必须退出.解决问题的唯一线索就是在事件日志中:
事件类型:错误事件源:.NET运行时2.0错误报告事件类别:无事件ID:5000日期:1/9/2009时间:8:47:44 AM用户:N/A计算机:DADIEHL描述:EventType clr20r3,P1 crm.client.exe,P2 1.0.1.0,P3 49667f61,P4 mscorlib,P5 2.0.0.0,P6 471ebc5b,P7 c35,P8 59,P9 system.formatexception,P10 NIL.
所以我将以下代码添加到program.cs:
try { Application.Run(new WindowContainer()); } catch (Exception exc) { new DialogException(exc).ShowDialog(); }
只是这样我可以捕获任何异常,但用户仍然收到相同的消息,说应用程序必须退出.我无法在我的计算机上重现这一点,因此无法使用调试器来缩小范围.有谁知道如何收集更多信息或有任何想法是什么问题?
很可能异常是在不同的线程上抛出的.
您可能想要添加处理程序的两个事件:
AppDomain.UnhandledException
Application.ThreadException
添加记录异常的处理程序,您将获得更多信息.
非UI线程中未处理的异常的行为从.NET 1.1更改为2.0.他们曾经被吞下但现在他们停止了应用程序.如果你愿意,你可以使用app.config标志来选择旧的行为 - 但不是真的推荐,因为另一个线程中的例外可能意味着你的应用现在不稳定.我不记得那时的设置细节,但如果你愿意,我可以查看它们.