5

我们有一个 .NET WCF 服务,理想情况下应该是 100% 正常运行时间。但有时我们的应用程序中会出现由 3rd 方数据库连接组件引起的内存泄漏问题。我们将 nnCron 配置为监视进程是否存在,并且当该服务的进程退出时,它应该再次启动它。

但是当应用程序崩溃时,窗口会弹出一个嘈杂的窗口,通知该应用程序已经崩溃。

这里是:

在此处输入图像描述

只有当我们单击愚蠢的“关闭程序”按钮时,该过程才真正从系统中消失。并且只有在 nnCron 重新启动服务之后。我们不想监视此窗口的出现,只是想摆脱它以使 nnCron 成功工作。

那么我们如何禁用这些窗口呢?

操作系统是 Windows server 2008 r2 Standard。

4

1 回答 1

8

我知道这是一个老问题,但我遇到了同样的问题并找到了解决方案。

在应用程序开始时调用以下命令:

SetErrorMode( SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX );

我已经用一个非常简单的测试应用程序尝试了它,它试图取消引用一个空指针。如果没有上述行,我的测试应用程序将显示“...已停止工作对话框”。有了上面的代码,应用程序就安静地死掉了。

参考:

编辑:这是在不修改代码的情况下在系统范围内禁用该对话框的选项。创建以下注册表值作为 REG_DWORD 并将值设置为 1:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\DontShowUI

参考:WER 设置

于 2013-09-19T15:27:44.850 回答