2009-08-04 37 views
0

我正在處理WinForms應用程序中的Application.UnhandledException事件,並且需要記錄在那裏捕獲的異常。我的app.config被設置爲將異常記錄到FileLog和EventLog。使用My.Application.Log.WriteException寫入事件日誌的安全問題

問題是,作爲非管理員用戶運行時,EventLog因SecurityException而無法寫入 - 我收到消息「未找到源,但無法搜索部分或全部事件日誌。 「

我明白爲什麼 - 用戶沒有創建EventLog源的權限,但問題是如何創建此源?正如我所看到的,我可以:

1)使用我的安裝程序創建EventLog源,因爲它以admin身份運行。這個怎麼做?

2)從我的應用程序內創建,通過某種方式提升權限?但是這會給Vista上的UAC提示。

在客戶機上創建Windows應用程序事件日誌源的最佳做法是什麼?

感謝

回答

2

最常見的方式做,這是你的選項1.

你怎麼做就看你的安裝包,但你需要:

  1. 確保您的安裝程序運行提高權限。
  2. 寫一個條目到事件日誌源或
  3. 直接

當你安裝程序寫入事件日誌,源將被創建您的事件源創建註冊表項,將可對於非管理員。

使用WiX(Windows Installer Xml),您可以引用this post以直接創建事件源註冊表項。

+0

謝謝,這應該很好。已在此處找到更多信息: http://msdn.microsoft.com/en-us/library/xz73e171%28VS.80%29.aspx – 2009-08-04 23:55:14