在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服务器中,代码按预期工作。 有没有人知道为什么会这样,或者如何让它发挥作用?
答案 0 :(得分:1)
Microsoft确认这是Windows 7和2008 Server中的一个错误。
解决方法是创建一个新的EventLog对象,并在将EnableRaisingEvents设置为true之前向日志添加一个条目。
希望这将被修复......