0

在完成以下对象后,我正在尝试退出 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 并重新启动代码,那么它将毫无问题地关闭。

谢谢!

4

1 回答 1

1

您正在通过调用 RDOSession.Logoff 来终止 Outlook MAPI 会话。不要那样做 - 会话属于 Outlook,您只是通过阅读 Namespace.MAPIOBJECT 属性借用了它。

于 2013-08-21T16:59:44.837 回答