2012-10-12 13 views
16

Ho un'applicazione che chiamaPerché ricevo un'eccezione dalla libreria Outlook di Office?

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

sto ricevendo l'eccezione:

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

da 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(); 
    } 
} 

Questo errore non è mai accaduto in precedenza e non è stato apportato alcun cambiamento al codice che conosco. http://support.microsoft.com/kb/825118 non sembra adattarsi ai miei sintomi - Il mio computer non smette di rispondere, ecc. Qualsiasi aiuto per diagnosticare il problema sarebbe molto apprezzato!

+4

Questo errore è stato causato da Visual Studio eseguito come amministratore. Outlook non consente agli utenti separati di accedere alla stessa cassetta postale (ho avuto l'applicazione Outlook aperta sul desktop). Anche se ho accesso amministratore locale con il mio utente di dominio, l'esecuzione di VS come amministratore deve associare il processo a un oggetto utente diverso? Non esattamente sicuro di come funzioni, ma ... Risolto. – Zee

+0

Si prega di inviare il tuo commento come una risposta in modo che gli altri possano beneficiare. – SliverNinja

risposta

55

Questo errore è stato causato da Visual Studio eseguito come amministratore. Outlook non consente agli utenti separati di accedere alla stessa cassetta postale (ho avuto l'applicazione Outlook aperta sul desktop). Anche se ho accesso amministratore locale con il mio utente di dominio, l'esecuzione di VS come amministratore deve associare il processo a un oggetto utente diverso? Non esattamente sicuro di come funzioni, ma ... Risolto.

+0

questo problema è stato risolto ma viene visualizzato un nuovo errore – Meer

+0

Impossibile eseguire il cast dell'oggetto COM di tipo 'System .__ ComObject' nel tipo di interfaccia 'Microsoft.Office.Interop.Outlook.Application'. Questa operazione non è riuscita perché la chiamata QueryInterface sul componente COM per l'interfaccia con IID '{00063001-0000-0000-C000-000000000046}' non è riuscita a causa del seguente errore: Libreria non registrata. (Eccezione da HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)). – Meer

+1

Quando chiudiamo l'istanza in esecuzione di Outlook funziona come un incantesimo. Ora la domanda, che presumo debba passare in un'altra domanda di Stack Overflow, è sapere come farlo funzionare anche se Outlook è in esecuzione. –

0

Mi sono imbattuto nello stesso problema e, come detto in precedenza, se Visual Studio è in esecuzione come amministratore, Outlook impedisce un'altra istanza con un altro utente. La mia soluzione VS sta avviando diversi progetti, e ne ho bisogno per l'esecuzione come amministratore, quindi quello che ho fatto è eseguire Outlook come amministratore durante il debug. Questo ha risolto il mio problema.

Problemi correlati