我正在尝试在完成对象之后退出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无法显示此视图
但是如果我在session.LogOff()之前中断,请在完整模式下打开outlook并重新启动代码然后它会关闭而没有问题。
谢谢!
答案 0 :(得分:1)
您正在通过调用RDOSession.Logoff来终止Outlook MAPI会话。不要这样做 - 会话属于Outlook,您只需通过读取Namespace.MAPIOBJECT属性来借用它。