我有一个相当稳定且已使用多年的 Outlook 插件。在 citrix 机器环境中,如果打开,插件会导致 Outlook 挂起。日志没有多大帮助。如果我可以进行本机调试,我该如何解决这个问题?
问问题
299 次
1 回答
0
Outlook 可能因多种原因挂起。由于 Outlook 是基于 COM 的,它使用STA会导致主 UI 线程在等待长时间运行的操作完成时挂起(网络调用、磁盘读/写等)。
您将需要查看源代码以查看组件在挂起时执行的行为。Trace.TraceInformation
如果您可以重复挂断,插入跟踪语句 ( ) 也可能会有所帮助。从事件开始ThisAddIn.ThisAddIn_Startup
以查看 AddIn 的入口点。DebugView是一个很棒的实用程序,可以在运行时查看插件的 Trace 输出。
如果 COM 资源没有被正确清理 ( Marshal.ReleaseComObject
) - 随着时间的推移,内存消耗会增加,这将开始使应用程序变得迟缓 - 尽管它不应该导致它冻结/挂起。
你最好的办法是了解插件的行为,看看是什么触发了挂起。
于 2012-01-30T15:02:50.050 回答