2010-04-13 51 views
1

我在用C#编写的ASP.NET应用程序中尝试读取eventlog,但它返回错误。阅读EventLog C#错误

EventLog aLog = new EventLog(); 
aLog.Log = "Application"; 
aLog.MachineName = "."; // Local machine 

foreach (EventLogEntry entry in aLog.Entries) 
{ 
if (entry.Source.Equals("tvNZB")) 
    Label_log.Text += "<p>" + entry.Message; 
} 

一个它返回的条目是“在源‘tvNZB’事件ID‘0’的描述不能被发现,本地计算机可能没有必要的注册信息或消息DLL文件,以显示所述消息,或者您可能没有权限访问它们,以下信息是事件的一部分:'服务已成功启动'。“

我只希望'服务已成功启动'。有任何想法吗?

回答

1

试试这个:)

 EventLog aLog = new EventLog(); 
     aLog.Log = "Application"; 
     aLog.MachineName = "."; // Local machine 

     string message = "\'Service started\'"; 

     foreach (EventLogEntry entry in aLog.Entries) 
     { 
      if (entry.Source.Equals("tvNZB") 
      && entry.EntryType == EventLogEntryType.Information) 
      { 
       if (entry.Message.EndsWith(message)) 
       { 
        Console.Out.WriteLine("> " + entry.Message); 
        //do stuff 
       } 
      } 
     } 

它工作在Win XP家庭版。该消息在另一个操作系统上可能不同。 最好的方法:转储entry.Message通过System.Diagnostics.Trace.Write并看到确切的消息。

希望工程顺利:)

+0

我entry.Message转储是这样的: 从源tvNZB事件ID 0的描述无法找到。引发此事件的组件未安装在本地计算机上或安装已损坏。您可以在本地计算机上安装或修复组件。 如果事件源自另一台计算机,显示信息必须与事件一起保存。 活动包含以下信息: 服务已成功停止。 我刚刚意识到错误可能是因为我目前没有安装服务,呵呵。 – Robert 2010-04-13 22:35:53

+0

在此转储中查找字符串“服务已成功停止”。您可能需要自定义消息字符串。祝你好运! – Nayan 2010-04-14 08:04:51