解决outlook addin挂起的推荐方法是什么?

时间:2012-01-30 10:10:12

标签: debugging vsto debug-symbols sysinternals

我有一个前景插件,它相当稳定并已使用多年。在Citrix机器环境中,插件如果处于打开状态,则导致outlook挂起。日志没有多大帮助。如果我可以进行本机调试,如何解决问题呢?

1 个答案:

答案 0 :(得分:0)

Outlook可能因多种原因而挂起。由于Outlook是基于COM的,因此它使用STA,这会导致主UI线程在等待长时间运行的操作完成时挂起(网络调用,磁盘读/写等等。)。

您需要查看源代码,以查看组件挂起时的行为。如果您可以重复挂断,则插入跟踪语句(Trace.TraceInformation)也可能有所帮助。从事件ThisAddIn.ThisAddIn_Startup开始,查看AddIn的入口点。 DebugView是一个很棒的工具,可以在插件运行时查看它的跟踪输出。

如果没有正确清理COM资源(Marshal.ReleaseComObject) - 随着时间的推移,内存消耗将会增加,这会使应用程序变得迟缓 - 尽管它不应该导致它冻结/挂起。

您最好的选择是了解插件的行为,以了解触发挂起的内容。