【发布时间】:2009-05-07 01:52:04
【问题描述】:
我的 .Net 应用程序在某些机器上突然退出(这是一个桌面应用程序)。我试图捕获异常,但我使用的catch 语句根本无法捕获正在发生的异常。
任何想法如何解决或诊断这个问题?
注意:这个异常只发生在客户端的机器上,发布模式,我们没有调试工具可以使用。
注意 2:应用程序事件日志根本不包含任何错误。
【问题讨论】:
标签: .net
我的 .Net 应用程序在某些机器上突然退出(这是一个桌面应用程序)。我试图捕获异常,但我使用的catch 语句根本无法捕获正在发生的异常。
任何想法如何解决或诊断这个问题?
注意:这个异常只发生在客户端的机器上,发布模式,我们没有调试工具可以使用。
注意 2:应用程序事件日志根本不包含任何错误。
【问题讨论】:
标签: .net
您可能想尝试将事件处理程序添加到System.Windows.Forms.Application.ThreadException and System.AppDomain.CurrentDomain.UnhandledException 以查看是否可以找出导致应用程序终止的异常(如果有)。
【讨论】:
在 Visual Studio 的调试下拉菜单中,选择异常并选中 throws 下的所有复选框。这应该在任何未处理的异常中停止应用程序。检查它并给我们结果。
【讨论】:
如果 .NET 运行时正在记录某些内容,您能否检查客户端 PC 上的应用程序事件日志?
【讨论】:
这几乎总是由您使用的本机代码引发 Win32 异常的 COM/PInvoke 问题引起的。在某些情况下,当主要状态损坏(例如无效的堆栈指针)时,Windows 将选择简单地中止进程而不是正常将其终止。
如果您可以确定关机前的特定行为,则可以缩小对可能导致问题的控件/PInvokes 的搜索范围。
【讨论】: