禁用“应用程序已停止工作”窗口

时间:2013-01-22 04:47:54

标签: .net windows wcf windows-server-2008 crash-reports

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

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

这是:

enter image description here

只有当我们点击哑巴“关闭程序”按钮时,该过程才真正从系统中消失。并且只有在nnCron重启服务之后。我们不想监视这个窗口出现,只是想摆脱nnCron成功的工作。

那么我们怎样才能禁用这样的窗口?

操作系统是Windows server 2008 r2 Standard。

1 个答案:

答案 0 :(得分:8)

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

在申请开始时拨打以下电话:

SetErrorMode( SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX );

我尝试使用一个非常简单的测试应用程序尝试取消引用空指针。如果没有上面的行,我的测试应用程序将显示“...已停止工作对话框”。通过上面的这一行,应用程序就会悄然死去。

参考文献:

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

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

参考:WER Settings