2012-10-12 5 views
16

私は例外受けてるOfficeのOutlookライブラリから例外が表示されるのはなぜですか?

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

を呼び出すアプリケーションを持っている: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)).

を。

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

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

+0

あなたのコメントを回答として投稿し、他の人が恩恵を受けるようにしてください。 – SliverNinja

答えて

55

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

+0

この問題は解決されましたが、新しいエラーが発生します – Meer

+0

'System .__ ComObject'タイプのCOMオブジェクトをインターフェイスタイプ 'Microsoft.Office.Interop.Outlook.Application'にキャストできません。次のエラーにより、IID '{00063001-0000-0000-C000-000000000046}'のインターフェイスのCOMコンポーネントのQueryInterface呼び出しが失敗したため、この操作が失敗しました。ライブラリが登録されていません。 (HRESULTからの例外:0x8002801D(TYPE_E_LIBNOTREGISTERED))。 – Meer

+1

実行中のOutlookのインスタンスを閉じると、魅力的に機能します。今、私は別のスタックオーバーフローの質問に行く必要がある質問は、Outlookが実行されている場合でもそれを動作させる方法を知ることです。 –

0

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

関連する問題