我正在尝试在处理完对象后退出outlook.application,如下所示
//variables intialisation
var outlookApp = new Microsoft.Office.Interop.Outlook.Application();
RDOFolder store;
RDOStore mailbox;
RDOSession session;
session = Redemption.RedemptionLoader.new_RDOSession();
session.MAPIOBJECT = outlookApp.Session.MAPIOBJECT;
mailbox = session.GetDefaultFolder(rdoDefaultFolder.olFolderInbox).Store;
store = session.GetDefaultFolder(rdoDefaultFolder.olFolderInbox).Parent;
//...code goes on
//Quitting
session.LogOff();
outlookApp.Quit();
Marshal.ReleaseComObject(store);
Marshal.ReleaseComObject(mailbox);
Marshal.ReleaseComObject(session);
Marshal.ReleaseComObject(outlookApp);可能的问题是什么?我试着等待几分钟,以确保它们在outlook进程中没有发生任何事情,阻止它退出,但它永远不会自动关闭。当我单击outlook图标手动关闭它时,我得到以下错误:
Outlook无法显示此视图
但是如果我在session.LogOff()之前中断,在完全模式下打开outlook并重新启动代码,那么它将毫无问题地关闭。
谢谢!
发布于 2013-08-22 00:59:45
您正在通过调用RDOSession.Logoff终止Outlook MAPI会话。不要这样做-会话属于Outlook,您只是通过读取Namespace.MAPIOBJECT属性来借用它。
https://stackoverflow.com/questions/18360854
复制相似问题