2013-03-27 248 views
0

在我的應用程序中我存儲了不同的文件夾EntryID(電子郵件,聯繫人......)以便稍後選擇它們。 問題是,有時我得到一個COMException:COMException:客戶端操作失敗Outlook

客戶端操作失敗。 (在 Microsoft.Office.Interop.Outlook.NameSpaceClass.GetFolderFromID(字符串 EntryIDFolder,對象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使用日曆引發了很多同步錯誤,但我沒有在處理它們。 我無法在用戶郵箱的測試虛擬機上重現錯誤。我試圖用辦公室的內部工具修復(發現錯誤),但是這並沒有解決任何問題。

回答

1

如果您在聯網環境中工作,則會出現錯誤。這是不可避免的。您的代碼必須準備好處理這樣的錯誤。

+0

Outlook處於緩存模式。 Exchange使用日曆引發了很多同步錯誤,但我沒有在處理它們。你能告訴我怎樣才能避免這個問題或處理這個探索性的? – Florian 2013-04-04 07:33:02