2011-03-17 123 views
1

我有這樣的代碼:無法監控安全事件日誌

{ 
    EventLog ev = new EventLog("Security"); 
    ev.EntryWritten += new EntryWrittenEventHandler(ev_EntryWritten); 
} 

static void ev_EntryWritten(object sender, EntryWrittenEventArgs e) 
{ 
    log_to_file("ev_EntryWritten"); 
} 

但我得不到任何安全事件。該程序在XP SP3上作爲Windows Service運行。我錯過了什麼?

+0

在哪個帳戶下運行? – 2011-03-17 19:58:47

+0

@Henk Holterman:本地系統 – lzm 2011-03-17 20:03:55

回答

3

確保您設置EnableRaisingEvents = true;

另外,我想運行它作爲一個正常的應用程序之前,首先在服務帳戶下運行它。確保它不是在LocalSystem下運行,而是爲該服務定義的其他一些用戶作爲登錄用戶。你不會看到一個服務的GUI,所以Console.WriteLine是無用的。

+0

我實際上是將行寫入日誌文件。 – lzm 2011-03-17 20:05:32

+0

@lzm:好的,無論哪種方式,我建議你設置一個單獨的用戶來運行你的服務,並驗證EnableRaisingEvents設置爲true或不起作用。 – 2011-03-17 20:12:01

+0

是的,也請參閱http://msdn.microsoft.com/en-us/library/system.diagnostics.eventlog.entrywritten.aspx – 2011-03-17 20:12:45