2010-04-13 90 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