12

Những gì tôi đang cố gắng làm là thêm nút "Email Đến ..." vào một khách hàng winform mở một cửa sổ thư Outlook mới và đính kèm tệp để người dùng có thể chuyển tiếp nó. Tôi có thể tích hợp triển vọng hoạt động tốt nếu triển vọng chưa chạy. Đây là một ứng dụng winforms C# .NET 4.0, sử dụng thư viện interop Outlook 14.0, chống lại Outlook 2010 32 bit chạy trên windows 7 64 bit máy. Tôi có các ứng dụng đã được biên dịch để x86 vì lý do khác vì vậy tôi nghi ngờ của nó một vấn đề 32/64 bit. Đây là mã của tôi:Cách kết nối với triển vọng 2010 trong khi chạy trong C#?

// Connect to outlook and create a new mail item 
var app = new Outlook.Application(); 
var ns = app.GetNamespace("MAPI"); 
var mailItem = (Outlook.MailItem)ns.Application.CreateItem(Outlook.OlItemType.olMailItem); 

// create the mail item and attach the file 
mailItem.To = ""; 
mailItem.Subject = "Emailing: " + Path.GetFileName(_currentFilePath); 
mailItem.Attachments.Add(_currentFilePath, Outlook.OlAttachmentType.olEmbeddeditem); 

// show the email dialog window 
mailItem.Display(true); 

Nếu triển vọng không hoạt động, nó hoạt động hoàn hảo. Sau khi mở, tôi nhận được lỗi sau trên dòng đầu tiên mà nó cố gắng tạo đối tượng Outlook.Application:

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

Bất kỳ ý tưởng nào sẽ gây ra điều này? Đây có phải là một phiên bản xung đột của một số loại?

+3

Bạn nên chấp nhận câu trả lời của Jahmics, điều đó là chính xác. – flayn

Trả lời

1

Tôi đã gặp vấn đề tương tự. Đó là một vấn đề an ninh. Khi bạn chạy Outlook với tư cách quản trị viên (Shift Right Click). Vấn đề không còn ở đó nữa. Vô hiệu hóa cài đặt kiểm soát tài khoản người dùng có thể giải quyết nó.

19

Điều này là do đặc quyền của quy trình. Tôi thường chạy Visual studio là quản trị viên, nhưng nếu triển vọng không phải là trước đó bắt đầu như là quản trị viên, cuộc gọi COM sẽ thất bại.

Giải pháp đơn giản. Chạy cả hai dưới dạng quản trị viên hoặc chạy cả hai dưới dạng cấp đặc quyền thông thường.

+1

oh người đàn ông này đã cứu tôi khỏi bị điên ... – stt106

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