2010-11-21 10 views
2

Herhangi bir nedenle, EventLogEntry.Category kategorinin metni yerine bir sayı döndürür. Olması gerekmediğini varsaydığım CategoryNumber özelliği ile aynı şeyi döndürür. Burada yanlış bir şey mi yapıyorum yoksa bir EventLogEntry için kategori metnini almanın farklı bir yolu var mı? İşte Kategori metni EventLogEntry.Category sitesinden alma

hatayı yeniden bazı kod şudur:

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

Bu "Yok" veya "Hizmet Devlet Event" (veya ne olursa olsun, ilgili kategori tam size göre), fakat bunun yerine yazıyor "gibi bir şey yazmalı (0)". Burada yanlış yaptığım şeyler hakkında bir fikrin var mı?

+0

aynı sonuca sahip, farklı makinelerin sayısına bu denedim. Kategori metni asla iade edilmez, sadece sayı. –

+0

Windows Olay Görüntüleyicisi (eventvwr) bu olaylar için neler gösterir? Kategori isimleri veya numaraları? –

+0

Olay Görüntüleyicisi, doğru kategori adlarını gösterir. –

cevap

1

Bu, kendi API'larındaki bir hatadır. Yakında çözüleceğini sanmıyorum. Bu sadece Windows Vista ve sonraki işletim sistemlerinde gerçekleşir. Yani bu aslında XP, 2000, 2003, vb. Düzgün çalışıyor. Ancak, bakmanız gereken başka bir yaklaşım var. Bu, olay günlüğüne programatik olarak erişmenin alt düzey yaklaşımı gibi görünüyor. Teknoloji, Windows Yönetim Araçları (WMI) 'dir ve bunun için .NET ve dolayısıyla C#' da bir arayüz var. Bu bağlantılar üzerinden

Kontrol:

Windows Management Instrumentation (WMI) Tutorial

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

Reading Widsows Event Log