发生未经处理的异常时如何防止创建“.mdmp”和“.hdmp”文件

How to prevent creating ".mdmp" and ".hdmp" files when unhadled exceptions happens

我们的 C# 控制台应用程序运行良好。此应用程序在内部运行一些 C++ dll。有时,我们会遇到 C5 错误(底层 dll 的未知 C++ 错误)或未处理的 C# 异常,这两种情况都会终止应用程序。 (我在 Windows 事件日志中看到了它)。

问题不是错误,而是 Windows' Temp 文件夹中生成的转储文件。它填满了我们的磁盘(space 非常低的虚拟磁盘),并导致其他 运行 应用程序失败。 这是两个扩展名为“.mdmp”和“.hdmp”的文件。它们占用大约 500MB。我在互联网上读到这些与 "Windows Error Reporting" 有关,但我检查了我们的 Windows 设置(服务器管理器-->本地服务器)并且它已关闭。

我还为我们的 C# 控制台应用程序更改了构建设置:"Internal compiler error reporting" 到 "send";希望它将转储文件发送到它打算发送的某个地方并且不保存它以备后用,但是临时文件仍然会在磁盘上生成。我想我应该把它改成"none"。

如果有办法停止创建这些临时文件,请帮助我。

先谢谢你

在像 Windows Server 2003 这样的旧环境中,要禁用机器上的 .HDMP 文件,只需右键单击 "My Computer" 并单击 'Properties',转到选项卡 'Advanced' 然后点击 'Error Reporting',在那里你可以禁用它。

一个选项是从错误报告中排除您的 exe。请参阅此处 "ExcludedApplications":https://msdn.microsoft.com/en-us/library/bb513638.aspx

我没有足够的积分来直接回复上一个答案。所以在这里回复。上一个答案中提到的设置是针对系统崩溃,也就是蓝屏。这些设置不会影响用户模式应用程序崩溃。