Почему я получаю исключение из библиотеки Office Outlook? - программирование
Подтвердить что ты не робот

Почему я получаю исключение из библиотеки Office Outlook?

У меня есть приложение, которое вызывает

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

Я получаю исключение:

Извлечение COM-класса factory для компонента с CLSID {0006F03A-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: 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, похоже, не соответствует моим симптомам - мой компьютер не перестает отвечать и т.д. Любая помощь в диагностике проблемы будет принята с благодарностью!

4b9b3361

Ответ 1

Эта ошибка была вызвана визуальной студией, запущенной как admin. Outlook не позволяет отдельным пользователям получать доступ к одному и тому же почтовому ящику (у меня было приложение Outlook на рабочем столе). Несмотря на то, что у меня есть доступ локального администратора к пользователю моего домена, запуск VS в качестве администратора должен связать процесс с другим пользовательским объектом? Не совсем точно, как это работает, но... Решено.

Ответ 2

Я столкнулся с той же проблемой и, как ранее сказал: если Visual Studio работает под управлением Administrator, Outlook предотвращает другой экземпляр с другим пользователем. Мое решение VS запускает несколько проектов, и мне нужно, чтобы он выполнялся как администратор, поэтому я выполнил запуск Outlook как администратора при отладке. Это решило мою проблему.