2010-07-15 65 views
6

我正在嘗試爲我的cmd行應用程序製作事件記錄器。但是,當它第一次嘗試創建日誌時,我會收到此錯誤。Windows 7/2008服務器上的C#中的事件記錄

未找到源,但有些或 所有事件日誌都無法搜索。 不可訪問日誌:安全。

所以我發現這是因爲Windows 7和一些新的安全性。所以現在我必須給.exe管理員權限。

有沒有解決方法,所以它不需要管理員權限?我不知道如果人們不得不用管理員權限來滿意地運行我的應用程序,人們會覺得太好。

我打算把這個稍後放在Windows 2008機器上,所以我猜它會遭受同樣的問題。

回答

3

您可以在安裝時創建事件源,因此他們只需要進行一次該選擇。在註冊表中創建源代碼後,您可以向其添加事件,而無需管理員權限。

還有爲CreateEventSource功能也有個EventLogInstaller類:

http://msdn.microsoft.com/en-us/library/system.diagnostics.eventloginstaller.aspx

維克斯還提供了它這個功能的實用性擴展:

How do you create an event log source using WiX

+0

如何在安裝時創建此事件源? – chobo2 2010-07-15 22:34:15

+0

我更新了一些信息的帖子 – fletcher 2010-07-15 22:37:05

+0

那麼,我只是把一個論點,並說可能像安裝?那麼它只是安裝它,這就是它? – chobo2 2010-07-15 23:26:25

1

網絡服務或模擬用戶必須具有對HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ EventLog \ Security的讀取/寫入權限

+0

但是我可以訪問每個eventLog? – chobo2 2010-07-15 23:33:35

+0

你的問題是關於爲你的應用程序創建一個事件日誌。 在Windows 2008上,這是您需要的。 (我想在win7上,在這種情況下,我會讓應用程序的安裝程序以管理員身份運行,從而爲應用程序提供正確的權限,因此您不需要經常以管理員身份運行它。) – Jeroen 2010-07-15 23:55:05