Có một số trường hợp nhất định trong ứng dụng của chúng tôi khi xảy ra lỗi không nghiêm trọng và ứng dụng khôi phục.Có thể chấp nhận ghi vào Nguồn Sự kiện Ứng dụng không?
Ví dụ về việc này không xác định chính xác một số mục có thể nhập khi điền các mục được nêu vào danh sách lựa chọn. Các lỗi sẽ không làm hỏng ứng dụng nhưng người dùng sẽ được cảnh báo rằng một số mục không tải được.
Trong trường hợp này, lỗi được ghi vào Nhật ký sự kiện ứng dụng dưới dạng cảnh báo. Đó là một lỗi không nghiêm trọng mà ứng dụng phục hồi, nhưng việc đăng nhập vào nhật ký sự kiện cho phép chúng tôi thấy lỗi gốc nếu cần.
Vấn đề của chúng tôi là phần mềm cần có thể được cài đặt với tài khoản Người dùng quyền lực. Không phải là tài khoản quản trị, chúng tôi sẽ không có khả năng tạo nguồn sự kiện tùy chỉnh cho ứng dụng.
Mục đích là ghi các lỗi thay vào nguồn sự kiện "Ứng dụng" (đã tồn tại xuất hiện trong Nhật ký sự kiện ứng dụng). Tuy nhiên, việc này làm cho văn bản tương tự như sau đây cũng được bao gồm.
Không thể tìm thấy mô tả cho ID sự kiện 0 từ ứng dụng nguồn. Một trong những thành phần mà tăng sự kiện này không được cài đặt trên máy tính địa phương của bạn hoặc cài đặt bị hỏng. Bạn có thể cài đặt hoặc sửa chữa thành phần trên máy tính cục bộ.
Điều này là do EventID là 0 khi chúng tôi viết. Cách tiếp cận này sẽ hoàn thành công việc, nhưng có cách nào tốt hơn không? Có cách nào không phải quản trị viên để chỉ định EventID cho nguồn Sự kiện ứng dụng để cho biết rằng nó đến từ ứng dụng của chúng tôi?
Tôi đã thực hiện một số đọc: EventID kết hợp với Nguồn sự kiện xác định loại sự kiện nào đang xảy ra. Tóm lại: Tôi không nhớ lỗi cảnh báo nhưng tôi không nên sử dụng nguồn mà tôi không tạo. Tôi không ở trong một vị trí để tạo một (cài đặt không phải quản trị viên vv), vì vậy tôi hy vọng sẽ tìm thấy nguồn sự kiện có sẵn cho các loại sự kiện này hoặc sử dụng một cơ chế khác để ghi nhật ký. Suy nghĩ? – MoSlo
Nếu bạn đang sử dụng .NET 4.5, bạn có thể sử dụng lớp EventSource (http://msdn.microsoft.com/en-us/library/system.diagnostics.tracing.eventsource.aspx) để ghi sự kiện vào ETW mà không cần đăng ký . Nhược điểm là các sự kiện không được lưu trong bản ghi sự kiện, vì vậy nếu bạn không chủ động lắng nghe những sự kiện đó bạn sẽ không nhận được chúng. – fsimonazzi