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

时间:2011-11-03 15:09:26

标签: .net windows-server-2008-r2 event-log

在Windows 2008服务器中,当我清除EventLog时,我停止获取后续的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服务器中,代码按预期工作。 有没有人知道为什么会这样,或者如何让它发挥作用?

1 个答案:

答案 0 :(得分:1)

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

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

希望这将被修复......