web-dev-qa-db-ja.com

OfficeのOutlookライブラリから例外が発生するのはなぜですか?

呼び出すアプリケーションがあります

Email hello = new Email(appropriate constructor);
hello.Email_Send();

例外が発生します:

CLSID {0006F03A-0000-0000-C000-000000000046}のコンポーネントのCOMクラスファクトリの取得は、次のエラーのため失敗しました:80080005サーバーの実行に失敗しました(HRESULTからの例外:0x80080005(CO_E_SERVER_EXEC_FAILURE))。

System.Runtime.InteropServices.COMExceptionから。

using O = Microsoft.Office.Interop.Outlook;    
class Email
{
    public void Email_Send()
    {
        O.Application Outlook = new O.Application(); //Exception thrown here.
        O.MailItem message = Outlook.CreateItem(O.OlItemType.olMailItem);
        message.To = Receiver;
        message.CC = Sender;
        message.Subject = Subject;
        message.Body = "This is an automated message sent at " + DateTime.Now.ToString("HH:mm:ss") + " about " + Body_Topic + System.Environment.NewLine + Body_Content ;
        message.Send();
    }
}

このエラーはこれまでに発生したことはなく、私が知っているコードに変更はありません。 http://support.Microsoft.com/kb/825118 症状に合わないようです-コンピューターが応答を停止していません。など、問題の診断に役立つ情報をいただければ幸いです。

27
Zee

このエラーは、管理者として実行されているVisual Studioが原因で発生しました。 Outlookでは、別のユーザーが同じメールボックスにアクセスすることを許可していません(デスクトップでOutlookアプリケーションを開いていました)。ドメインユーザーのローカル管理アクセス権があるにもかかわらず、VSを管理者として実行するには、プロセスを別のユーザーオブジェクトに関連付ける必要がありますか?これがどのように機能するかは正確にはわかりませんが...解決しました。

72
Zee

私は同じ問題に遭遇し、前述のとおり:Visual Studioが管理者として実行されている場合、Outlookは別のユーザーの別のインスタンスを阻止します。私のVSソリューションはいくつかのプロジェクトを開始しており、管理者として実行する必要があるため、デバッグ中にOutlookを管理者として実行しました。これは私の問題を解決しました。

4
lukiller