当应用程序使用对Environment.FailFast的调用退出时,将显示“未知硬错误”消息

时间:2012-11-09 19:48:29

标签: c# .net termination

我们有一个C#应用程序,它连接到AppDomain.UnhandlerExceptions并监听应用程序中的任何未处理的异常。一旦出现未处理的异常,它就会向用户显示一条错误消息,并通过调用Environment.FailFast来终止应用程序。

问题是,在某些机器上,这会导致向用户显示“未知硬错误”消息,并且在我们点击“确定”之前应用程序不会退出。

操作系统是带有.NET 4应用程序的Windows 7 x64。

2 个答案:

答案 0 :(得分:4)

我们与Microsoft联系,结果是因为在Windows计算机上禁用了 Windows错误报告服务

呼叫流程如下:

  1. 应用程序通过调用Environment.FailFast来终止它。
  2. CLR检查是否已注册任何调试器来处理异常。注册调试器后,调试器会处理异常。
  3. 如果没有调试器,CLR会尝试将异常传递给操作系统。它尝试启动 Windows错误报告服务并将异常传递给它。
  4. 如果无法启动 Windows错误报告服务,它会在内核中排队一个未知的硬错误,并向用户显示未知的硬错误消息。

答案 1 :(得分:-1)

问题完成这些更改后为我解决了! 可能是DLL问题,请在开始编译之前进行检查。 1.在调试或发布模式下,检查平台目标应位于x64中。 2.然后保存并开始调试,也最好尝试捕获代码,这是一个好习惯