事件日志在清除后停止发送EntryWritten事件

问题描述:

在Windows 2008服务器中,当我清除EventLog时,我停止获取后续的EntryWritten事件。代码看起来很简单:事件日志在清除后停止发送EntryWritten事件

private void eventLog1_EntryWritten(object sender, System.Diagnostics.EntryWrittenEventArgs e) 
{ 
    label1.Text = "Got entry at " + DateTime.Now; 
} 

private void write_Click(object sender, EventArgs e) 
{ 
    eventLog1.WriteEntry("Hello"); 
} 

private void clear_Click(object sender, EventArgs e) 
{ 
    eventLog1.Clear(); 
} 


    this.eventLog1.EnableRaisingEvents = true; 
    this.eventLog1.Log = "MY_LOG"; 
    this.eventLog1.Source = "Test"; 
    this.eventLog1.SynchronizingObject = this; 
    this.eventLog1.EntryWritten += new System.Diagnostics.EntryWrittenEventHandler(this.eventLog1_EntryWritten); 

在Windows 2003服务器中,代码正常工作。 有没有人有一个想法,为什么发生这种情况,或如何使它工作?

Microsoft确认这是Windows 7和2008 Server中的一个错误。

解决方法是创建一个新的EventLog对象,并在将EnableRaisingEvents设置为true之前向日志中添加一个条目。

希望这将被固定...