2

我有一个 .NET 服务,它监视用 Fortran 编写的控制台应用程序的 Windows 共享位置,启动它们,监视 STDOUT 和 STDERR,并将输出复制回由其他服务处理的共享位置。一些实例写入了它们正在终止的输出,然后应用程序似乎被锁定(它从未终止)。我在本地机器上运行了应用相同的输入失败的应用程序,发现存在内存损坏错误,我假设是因为尝试两次释放相同的内存。显示一个 Windows 错误对话框。我确定,即使我的服务将这些控制台应用程序作为无窗口应用程序运行,但当 Fortran 控制台应用程序中发生错误时,它继续“运行”,因为没有用户可以单击对话框。

使用 System.Diagnostics.Process,有什么方法可以防止出现 Windows 错误对话框?有没有办法在不进行全局注册表更改的情况下防止它?我不想在全球范围内关闭这种行为。

通过谷歌搜索这个问题,我只能找到用户 1)应该编写适当的错误处理(在我不拥有的 Fortran 代码中无法完成的事情),或者对注册表进行更改(我认为错误,因为我无法控制其他用户如何使用服务器)。

4

0 回答 0