2010-11-21 22 views
2

出於某種原因,EventLogEntry.Category返回一個數字而不是類別的文本。它返回與CategoryNumber屬性相同的內容,我假設它不應該發生。我在這裏做錯了什麼,或者有不同的方式來獲取EventLogEntry的類別文本?從EventLogEntry.Category中獲取類別文本

下面是一些代碼重現錯誤:

Console.WriteLine(new EventLog("System").Entries[0].Category); 

這應該寫類似「無」或「服務狀態」事件(或任何相關的類別是你),而是將其寫入「 (0)」。有什麼想法,我在做什麼錯在這裏?

+0

我已經試過這在許多不同的機器上,都具有相同的結果。類別文本永遠不會被返回,只有數字。 – 2010-11-22 18:36:16

+0

Windows事件查看器(eventvwr)爲這些事件顯示什麼?類別名稱或數字? – 2010-11-22 22:07:17

+0

事件查看器顯示正確的類別名稱。 – 2010-11-23 23:15:38

回答

1

這是他們的API中的一個錯誤。我認爲它不會很快解決。這隻發生在Windows Vista和更高版本的操作系統中。因此,這實際上在XP,2000,2003等正常工作。

但是,還有另一種方法,你應該看看。看起來像這是以編程方式訪問事件日誌的較低級別的方法。該技術是Windows Management Instrumentation(WMI),並且在.NET中有一個接口,因此C#。

請查看以下鏈接:

Windows Management Instrumentation (WMI) Tutorial

Monitoring Remote Log Remotely using WMI in C# and .NET

Reading Widsows Event Log