2012-10-12 35 views
16

Tôi có một ứng dụng mà các cuộc gọiTại sao tôi nhận được ngoại lệ từ thư viện Outlook của Office?

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

Tôi nhận được ngoại lệ:

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

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

Lỗi này chưa từng xảy ra trước đây và không có thay đổi mã mà tôi biết. http://support.microsoft.com/kb/825118 dường như không phù hợp với các triệu chứng của tôi - Máy tính của tôi không ngừng đáp ứng, v.v. Bất kỳ trợ giúp chẩn đoán vấn đề nào sẽ được đánh giá cao!

+4

Lỗi này do studio trực quan đang chạy dưới dạng quản trị viên. Outlook không cho phép người dùng riêng biệt truy cập vào cùng một hộp thư (tôi đã mở ứng dụng outlook trên máy tính để bàn). Mặc dù tôi có quyền truy cập quản trị cục bộ w/người dùng tên miền của tôi, nhưng việc chạy VS với tư cách quản trị viên phải liên kết quy trình với một đối tượng người dùng khác? Không chắc chắn chính xác cách thức hoạt động, nhưng ... Đã giải quyết. – Zee

+0

Vui lòng đăng nhận xét của bạn dưới dạng câu trả lời để người khác có thể hưởng lợi. – SliverNinja

Trả lời

55

Lỗi này do studio trực quan đang chạy dưới dạng quản trị viên. Outlook không cho phép người dùng riêng biệt truy cập vào cùng một hộp thư (tôi đã mở ứng dụng outlook trên máy tính để bàn). Mặc dù tôi có quyền truy cập quản trị cục bộ w/người dùng tên miền của tôi, nhưng việc chạy VS với tư cách quản trị viên phải liên kết quy trình với một đối tượng người dùng khác? Không chắc chắn chính xác cách thức này hoạt động, nhưng ... Đã giải quyết.

+0

vấn đề này đã được giải quyết nhưng lỗi mới đến – Meer

+0

Không thể bỏ đối tượng COM loại 'Hệ thống .__ ComObject' vào loại giao diện 'Microsoft.Office.Interop.Outlook.Application'. Thao tác này không thành công do cuộc gọi QueryInterface trên thành phần COM cho giao diện với IID '{00063001-0000-0000-C000-000000000046}' không thành công do lỗi sau: Thư viện chưa được đăng ký. (Ngoại lệ từ HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)). – Meer

+1

Khi chúng ta đóng bản sao đang chạy của Outlook nó hoạt động giống như một sự quyến rũ. Bây giờ câu hỏi, mà tôi đoán là cần phải đi trong một câu hỏi Stack Overflow, là để biết làm thế nào để làm cho nó hoạt động ngay cả khi Outlook đang chạy. –

0

Tôi đã gặp sự cố tương tự và như đã nói trước đây: nếu Visual Studio đang chạy với tư cách Quản trị viên thì Outlook sẽ ngăn một phiên bản khác với người dùng khác. Giải pháp VS của tôi đang bắt đầu một số dự án và tôi cần nó để chạy với tư cách Quản trị viên, vì vậy những gì tôi đã làm là chạy Outlook với tư cách quản trị viên trong khi gỡ lỗi. Điều này giải quyết được vấn đề của tôi.

Các vấn đề liên quan