通过Redemption COM访问outlook时获得异常

时间:2015-03-25 11:47:25

标签: outlook mapi outlook-redemption

我们通过c#.net中的兑换DLL访问outlook。我们正在使用各种服务,例如:导入联系人,日历集成等。有时我们会从兑换COM获得例外:

   The file abc.ost is in use and cannot be accessed.
   'MyApplication' exited without properly closing your Outlook data file

有人可以帮助我们确定此问题的根本原因吗?

下面提到了例外细节:

Exception1:

  

OutlookServices.OutlookService -   System.Runtime.InteropServices.COMException(0x80040119):错误   IMAPISession.OpenEntry:MAPI_E_EXTENDED_ERROR

     

错误:未正确关闭Outlook,“MyApplication”退出   数据文件   'C:\用户\ ABC \应用程序数据\本地\微软\展望\ abc@org.com.ost'。   必须重新启动“MyApplication”。如果再次出现此错误消息,   联系支持“MyApplication”寻求帮助。

     

在Interop.Redemption.IRDOSession.GetMessageFromID(String   EntryIDMessage,Object EntryIDStore,Object Flags)


Exception2:

  

OutlookService - System.Runtime.InteropServices.COMException   (0x8004011D):IMAPISession :: OpenMsgStore中出错:   MAPI_E_FAILONEPROVIDER

     

错误:文件   C:\ Users \ abc \ AppData \ Local \ Microsoft \ Outlook \ abc@sigmacare.com -   abc.ost正在使用中,无法访问。关闭任何应用程序   正在使用此文件,然后再试一次。您可能需要重新启动   计算机。

     

在Interop.Redemption.IRDOSession.GetDefaultFolder(rdoDefaultFolders)   FolderType)

1 个答案:

答案 0 :(得分:1)

  1. 您确定您的申请是否优雅终止?你完成后会立即释放Redemption对象吗?
  2. 您的应用和Outlook是否都在相同的安全上下文中运行?应用程序是否以提升的权限运行(以管理员身份运行)?通常,只要安全上下文相同,OST文件就可以在不同进程(例如outlook和您的进程)之间共享。