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