Я работаю над приложением, которое постоянно открывает IE, выполняет задачу, закрывает ее и затем повторяет. Однако в случае сбоя IE во время выполнения система готова перейти к следующей итерации, однако отчет об ошибке остается открытым и не позволяет процессу полностью закрыться. Это означает, что он продолжает занимать память до тех пор, пока пользователь не щелкнет диалоговое окно с сообщением об игнорировании ошибки.
В настоящее время я рассматриваю два решения: использование VectoredExceptionHandlers и возможность полного отключения WER.
Насколько я понимаю, VectoredExceptionHandlers заключается в том, что они будут перехватывать любое исключение, выбрасываемое моим приложением, и обрабатывать их до того, как они попадут в WER. Однако, поскольку сбой действительно происходит в процессе IE, который запустил мое приложение, я не уверен, смогут ли эти обработчики предотвратить WER от получения исключения.
Я также не хочу полностью отключать WER в системе, как предлагают другие вопросы в StackOverflow, я хочу отключить его только во время работы моего приложения.
Кто-нибудь еще знает об этих опциях или лучший способ справиться с этим?
Настройки WER страница из MSDN может быть то, что вы хотите посмотреть на. В реестре есть раздел для исключенных приложений. И, кажется, это WerAddExcludedApplication Функция, которую вы можете вызвать. Судя по странице на Векторная обработка исключений, это, вероятно, не поможет вам ловить исключения из другого приложения.
Других решений пока нет …