2012-10-12 50 views
16

我有一個調用爲什麼我從Office的Outlook庫中收到異常?

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

申請我收到了異常:

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)).

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

此錯誤是由作爲管理員運行的visual studio引起的。 Outlook不允許單獨的用戶訪問相同的郵箱(我在桌面上打開了Outlook應用程序)。即使我有本地管理員訪問w /我的域用戶,以管理員身份運行VS必須將進程關聯到不同的用戶對象? 不完全確定這是如何工作的,但是......已解決。 – Zee

+0

請發表您的評論作爲答案,以便其他人可以受益。 – SliverNinja

回答

55

此錯誤是由作爲管理員運行的visual studio引起的。 Outlook不允許單獨的用戶訪問相同的郵箱(我在桌面上打開了Outlook應用程序)。即使我有本地管理員訪問w /我的域用戶,以管理員身份運行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。這解決了我的問題。

相關問題