【问题标题】:.Net Application Exits Abruptly.Net 应用程序突然退出
【发布时间】:2009-05-07 01:52:04
【问题描述】:

我的 .Net 应用程序在某些机器上突然退出(这是一个桌面应用程序)。我试图捕获异常,但我使用的catch 语句根本无法捕获正在发生的异常。

任何想法如何解决或诊断这个问题?

注意:这个异常只发生在客户端的机器上,发布模式,我们没有调试工具可以使用。

注意 2:应用程序事件日志根本不包含任何错误。

【问题讨论】:

    标签: .net


    【解决方案1】:

    您可能想尝试将事件处理程序添加到System.Windows.Forms.Application.ThreadException and System.AppDomain.CurrentDomain.UnhandledException 以查看是否可以找出导致应用程序终止的异常(如果有)。

    【讨论】:

      【解决方案2】:

      在 Visual Studio 的调试下拉菜单中,选择异常并选中 throws 下的所有复选框。这应该在任何未处理的异常中停止应用程序。检查它并给我们结果。

      【讨论】:

      • 不确定这是否适用。因为它只发生在发布模式下,在客户端的机器上。不过,我们无法在此处重现它
      【解决方案3】:

      如果 .NET 运行时正在记录某些内容,您能否检查客户端 PC 上的应用程序事件日志?

      【讨论】:

      • 我检查了事件日志.. 不幸的是没有记录错误。
      【解决方案4】:

      这几乎总是由您使用的本机代码引发 Win32 异常的 COM/PInvoke 问题引起的。在某些情况下,当主要状态损坏(例如无效的堆栈指针)时,Windows 将选择简单地中止进程而不是正常将其终止。

      如果您可以确定关机前的特定行为,则可以缩小对可能导致问题的控件/PInvokes 的搜索范围。

      【讨论】:

      • 如果您的应用程序是 PInvoke-ing,被编译为 AnyCPU,并且您的开发机器正在运行 32 位 Windows,当您在 64 位 Windows 上运行您的应用程序时,您可能会遇到崩溃。一个简单的解决方法是将您的应用程序编译为 x86。 Scott Hanselman 发布了关于此的内容:hanselman.com/blog/…
      猜你喜欢
      • 1970-01-01
      • 2021-12-09
      • 2017-07-13
      • 2021-07-17
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      • 2010-11-10
      • 2020-05-14
      相关资源
      最近更新 更多