我正在开发一个应用程序,该应用程序不断打开IE,执行任务,关闭它,然后重复。然而,如果IE在执行过程中崩溃,系统准备继续进行下一次迭代,但错误报告仍处于打开状态,不允许进程完全关闭。这意味着它将继续占用内存,直到用户单击对话框并忽略错误为止。
目前,我正在研究两种解决方案,VectoredExceptionHandlers的使用和完全禁用WER的能力。
我对VectoredExceptionHandlers的理解是,它们会拦截我的应用程序抛出的任何异常,并在它们到达WER之前进行处理。然而,由于崩溃实际上发生在我的应用程序启动的IE进程中,我不确定这些处理程序是否仍然能够阻止WER接收到异常。
我也不希望像StackOverflow上的其他问题所建议的那样在系统上完全禁用WER,我只希望在我的应用程序运行时禁用它。
有人对这些选项有更多的了解吗?或者有更好的方法来处理这个问题吗?
MSDN中的WER设置页面可能是您想要查看的。注册表中有一个部分用于排除的应用程序。似乎有一个WerAddExcludedApplication函数可以调用。从矢量异常处理页面来看,它可能不会帮助您捕获来自不同应用程序的异常。