Каков рекомендуемый подход для решения проблемы зависания надстройки outlook? - PullRequest
1 голос
/ 30 января 2012

У меня есть надстройка для Outlook, которая довольно стабильна и используется годами. В машинной среде citrix надстройка вызывает зависание внешнего вида, если его оставить открытым. Логи не сильно помогают. Как я могу подойти к проблеме, если я могу сделать собственную отладку?

1 Ответ

0 голосов
/ 30 января 2012

Outlook может зависнуть по многим причинам. Поскольку Outlook основывается на COM, он использует STA , что приведет к зависанию основного потока пользовательского интерфейса во время ожидания завершения длительной операции ( сетевой вызов, чтение / запись на диск и т. Д. И т. Д.). ).

Вам потребуется просмотреть исходный код, чтобы проверить, какое поведение выполняет компонент, когда он зависает. Вставка операторов трассировки (Trace.TraceInformation) также может помочь, если вы можете повторить зависание. Начните с события ThisAddIn.ThisAddIn_Startup, чтобы увидеть точку входа в AddIn. DebugView - отличная утилита для просмотра результатов трассировки вашего плагина во время его работы.

Если COM-ресурсы не очищаются должным образом (Marshal.ReleaseComObject) - со временем потребление памяти будет расти, что приведет к замедлению работы приложения - хотя это не должно вызывать его зависание / зависание .

Лучше всего понимать поведение плагина, чтобы увидеть, что вызывает зависание.

...