2012-11-17 24 views
7

Tôi có một bổ trợ outlook được phát triển với VSTO 2010 mà tôi muốn viết một số ghi nhật ký sự kiện. Trong khi gỡ lỗi, tôi có thể thực hiện việc này bằng cách thực hiện như sau:Có thể một Outlook addin ghi vào sổ ghi sự kiện hệ thống không?

if (!EventLog.SourceExists(ADDIN_FRIENDLY_NAME)) 
{ 
    EventLog.CreateEventSource(ADDIN_FRIENDLY_NAME, null); 
} 
EventLog.WriteEntry(ADDIN_FRIENDLY_NAME, message, EventLogEntryType.Warning); 

Vấn đề là phiên bản phát hành bổ trợ không có quyền quản trị để đọc nhật ký. Tôi tìm thấy một số bài báo nói về việc tạo nguồn EventLog trong khi cài đặt, nhưng tôi đang sử dụng ClickOnce và dường như không có cách nào để làm điều đó. Ngoài ra, ai đó đã nói về việc tạo một DLL riêng biệt và sau đó gọi InstallUtil trên DLL đó để tạo nguồn. Điều này không làm việc cho tôi vì điều này vẫn yêu cầu quyền quản trị.

Có thể chạy bổ trợ bằng mức bảo mật của Outlook không? Tôi thấy thông báo của Outlook trong bản ghi sự kiện để nó phải có đủ quyền để làm như vậy.

+2

Bạn không thể tạo nguồn sự kiện mà không có quyền quản trị. Vì vậy, bạn cần phải thay đổi chiến lược của bạn và viết cho một cái gì đó khác. –

+0

Cảm ơn John, tôi đã nghĩ rằng đó là một lựa chọn nhưng muốn kiểm tra xem nó có thể chạy bổ trợ ở cùng mức độ bảo mật như Outlook không. Tôi luôn có thể sử dụng tính năng ghi nhật ký tệp thông thường. – user1715925

+0

Bạn luôn có thể thử đăng nhập vào cơ sở dữ liệu từ xa - điều này giúp báo cáo tổng hợp đơn giản hơn nhiều. – SliverNinja

Trả lời

1

Bạn có thể thử chạy nhấp một lần với tư cách quản trị viên bằng cách sử dụng giải pháp được đề xuất trong this article nhưng tôi không nghĩ đó là giải pháp tốt.

Có thể một giải pháp tốt hơn là đưa vào nhấp chuột của bạn khi gói một thiết lập chuẩn .msi mà bạn có thể thực hiện lần đầu tiên bạn cài đặt addin của mình. Msi này chỉ cần tạo nguồn sự kiện.

Về câu hỏi của bạn:

Có thể có add-in chạy sử dụng mức độ bảo mật của Outlook?

Tôi không nghĩ rằng trình bổ sung của bạn chạy bằng mức bảo mật khác nhưng có thể bạn đã bật UAC để bạn không thể thực thi các hoạt động quản trị nếu bạn là quản trị viên.

+0

Đánh dấu là câu trả lời vì nó đã làm như vậy cho câu hỏi của tôi. Đối với giải pháp tôi đã kết thúc, tôi đã viết mã riêng để ghi vào tệp nhật ký văn bản trong thư mục tài liệu của người dùng hiện tại thay vì đơn giản. – user1715925