Outlook.Application.Quit不起作用

时间:2013-08-21 14:57:11

标签: outlook outlook-2010 outlook-redemption

我正在尝试在完成对象之后退出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并重新启动代码然后它会关闭而没有问题。

谢谢!

1 个答案:

答案 0 :(得分:1)

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