无法监控安全事件日志

问题描述:

我有这样的代码:无法监控安全事件日志

{ 
    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

确保您设置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