私のアプリケーションでは、後で選択するために、さまざまなフォルダのエントリID(電子メール、連絡先など)を保存しています。問題は、時々COMExceptionが発生することです。
クライアント操作が失敗しました。(Microsoft.Office.Interop.Outlook.NameSpaceClass.GetFolderFromID(String 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でエラーを再現できません。オフィスの内部ツールで修復しようとしましたが(エラーが見つかりました)、これでも何も修正されませんでした。