COMException:Outlook客户端操作失败

时间:2013-03-27 07:34:13

标签: c# outlook

在我的应用程序中我存储了不同的文件夹EntryID(电子邮件,联系人...),以便稍后选择它们。 问题是,有时我得到一个COMException:

  

客户端操作失败。 (在   Microsoft.Office.Interop.Outlook.NameSpaceClass.GetFolderFromID(字符串   EntryIDFolder,Object EntryIDStore))

更新: 我在同一操作中得到了另一条错误消息(没有修改代码)

  

消息传递接口返回了未知错误。如果问题仍然存在,请重新启动Outlook

我的代码如下:

       outlookApp.Session.GetFolderFromID(searchFolder);

OutlookApp的定义和声明方式如下:

 private ApplicationClass outlookApp;
try
        {
            outlookApp = new Microsoft.Office.Interop.Outlook.ApplicationClass();
        }
        catch (System.Exception)
        {
            try
            {
                outlookApp = Activator.CreateInstance(Type.GetTypeFromProgID("Outlook.Application")) as Microsoft.Office.Interop.Outlook.ApplicationClass;
            }
            catch (System.Exception)
            {
                outlookApp = System.Runtime.InteropServices.Marshal.GetActiveObject("Outlook.Application") as Microsoft.Office.Interop.Outlook.ApplicationClass;

            }
        }

我的建议是,这是以某种方式连接到共享文件夹,但我无法定期重现错误。 Outlook处于缓存模式。 Exchange正在向日历抛出大量同步错误,但我不是在研究它们。 我无法使用用户邮箱重现测试vm上的错误。我尝试使用办公室的内部工具进行修复(发现错误),但这也没有解决任何问题。

1 个答案:

答案 0 :(得分:1)

如果您在网络环境中工作,则会出现错误。这是不可避免的。您的代码必须准备好处理这样的错误。