Обработка исключений надстройки Outlook 2007

У меня есть надстройка Outlook 2007, которую я недавно унаследовал, и в настоящее время существует проблема в производстве, когда некоторые пользователи периодически отключают свою надстройку и, по-видимому, случайно. Нет журналов от надстройки, и есть блоки try/catch (и eat) вокруг каждого вызова метода / события в коде надстройки. Я провел поиск в Google и обнаружил, что Outlook выполняет "мягкое отключение" надстроек, если в Outlook возникают необработанные исключения.

Из того, что я могу сказать, нет никаких исключений, которые вызываются из надстройки. То, что я хотел бы сделать, это либо 1) Создать какой-то глобальный обработчик исключений в надстройке, чтобы быть на 100% уверенным, что все исключения перехвачены. Или 2) Каким-то образом прослушайте outlook, "отключив" надстройку в реестре, и с помощью этого прослушивателя удалите ключ reg, установленный outlook.

Я попытался сделать #1 следующим:

AppDomain.CurrentDomain.UnhandledException += AppDomain_UnhandledException;
System.Windows.Forms.Application.ThreadException += Application_ThreadException;

но ни один не был успешным.

Я понимаю, что System.Windows.Forms.Application.ThreadException не обязательно относится к надстройкам Outlook, но я решил, почему бы не попробовать.

Кроме того, я читал, что Outlook запускает отдельный AppDomain для надстроек, поэтому я надеялся, что AppDomain.CurrentDomain будет работать для этого. Я написал некоторый код, который специально генерирует исключения для проверки и не может получить запись ни в одно из этих событий, и Outlook продолжал отключать надстройку.

Любая помощь / понимание будет принята с благодарностью.

1 ответ

Когда надстройка outlook отключается, она меняет поведение загрузки с 3 на 2. Вы можете проверить это поведение загрузки в реестре, чтобы определить, отключено ли дополнение или нет.

Другие вопросы по тегам