VSTOアドインがあり、EntryIDまたはSubjectによってOutlookタスクを検索し、その上で操作を実行しています。Outlook VSTOアドイン80080005タスクの検索時に例外が発生する
ユーザーの一つは、それから、次のエラーメッセージをログに記録:
Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE))
ここで私は、エラー・ログの説明のカップルを見つけたタスク項目に
public Outlook.TaskItem FindTask(String EntryID, String Subject)
{
try
{
Outlook.Application OutlookApp = new Outlook.Application();
Outlook.NameSpace ns = null;
Outlook.MAPIFolder tasksFolder = null;
Outlook.Items taskFolderItems = null;
Outlook.Items filteredtaskFolderItems = null;
Outlook.TaskItem task = null;
ns = OutlookApp.Session;
ns.SendAndReceive(false);
tasksFolder = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderTasks);
taskFolderItems = tasksFolder.Items;
//Try to find the task by entryID
dynamic OutlookItem = null;
OutlookItem = ns.GetItemFromID(EntryID);
if (OutlookItem != null)
{
if (OutlookItem is Outlook.TaskItem)
{
Outlook.TaskItem foundItem = (Outlook.TaskItem)OutlookItem;
return foundItem;
}
}
//If not found by EntryID, find it by a Subject
string subjectmatch = "[Subject] ='" + Subject + "'";
filteredtaskFolderItems = taskFolderItems.Restrict(subjectmatch);
for (int i = 1; i <= filteredtaskFolderItems.Count; i++)
{
task = (Microsoft.Office.Interop.Outlook.TaskItem)filteredtaskFolderItems[i];
return task;
}
}
catch(Exception ex)
{
//log exception
}
return null;
}
を見つける機能がありますしかし、それらのどれも実際には意味をなしませんでした(複数のユーザーが同じCOMインターフェイスにアクセスしている、レジストリが乱れているなど)
コードが間違っている可能性があります。この例外が生成されている理由、またはOutlooksの障害ですか?
私は、別のOfficeアプリケーションからOutlookをインスタンス化していることに言及しておきます。
こんにちはドミトリー!あなたの返信をありがとう、これらのOutlookの問題に積極的に!上記のコードは、Excelのアドインで実行されます。ここでは、Outlookのインスタンスを作成し、そこから作業します。アドインはExcelとOutlookの間に接続を作成します。そのため、新しいOutlookオブジェクトをインスタンス化します。 セキュリティコンテキストに関して、私はそれに関する情報を知らず、MSDNのチュートリアルと記事、およびSDKを使ってこれを作成しました。問題を再現することはできませんが、クライアントの一部ができます。彼が望むたびにOutlookがタイムアウトするように見え、例外が発生します。 – Laureant
また、この質問もチェックできれば非常にうれしいです:https://stackoverflow.com/questions/43782786/c-sharp-outlook-vsto-add-in-error-while-trying-to-getget -item-in-a-exchange-setup 私は解決できないもう一つのOutlookミステリーです。 – Laureant
「run as Administrator」のように起動されますか? Outklook.Applicaitonオブジェクトのインスタンスをインスタンス化するコードの前にOutlookが**実行されていない場合は**動作しますか? –