35

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

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私の症状に合わないようです-コンピュータが応答を停止しないなど。問題の診断にご協力いただければ幸いです。

4

4 に答える 4

92

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

于 2012-10-13T19:24:37.373 に答える
5

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

于 2017-07-31T21:27:59.830 に答える
0

コメントの1つを回答として投稿します。

Outlookの実行中のインスタンスを閉じると、それは魅力のように機能します。

私の状況では、特別なセキュリティソフトウェアを備えたVMで実行しています。私の開発者デスクトップでは、Outlookが開いているときに正常に動作しました。

しかし、セキュリティで保護されたVMでは、これを機能させるためにOutlookを閉じる必要がありました。これは、セキュリティソフトウェアが原因である可能性があります。

Outlookを実行したままにした場合:Unhandled Exception: System.Runtime.InteropServices.COMException: 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)).

実行されていないときは、正常に動作します。

于 2021-04-02T15:46:50.260 に答える
-1

受け入れられた答えは完全に正確ではありません。実際には、呼び出し元のアプリケーションが元のプロセスと同じアクセスレベルを持っていない場合、COMは失敗します。両方が同じアクセスレベルである必要があります。

したがって、Outlookが管理者として起動され、Visual Studioでデバッグされているプログラムも管理者である場合、Outlookは機能します。

逆もまた同様です。Outlookが管理者として起動されていない場合、VisualStudioでデバッグされるプログラムも非管理者である必要があります。

COMReferenceまた、 toも含まれていない場合は、このメッセージを受け取ることができますMicrosoft.Office.Core

于 2021-11-30T06:36:20.683 に答える