Test sırasında hataları kontrol etmek için uzak bilgisayardaki Olay Günlüğünü okumak istiyorum. Bununla alakalı kod:.NET ile Uzaktan Olay Günlüğünü Okuyun
public bool CheckEventLogs(DateTime start)
{
EventLog myEventLog = new EventLog("CustomLog", "ServerName");
bool errorFound = false;
foreach (EventLogEntry entry in myEventLog.Entries)
{
if (entry.EntryType == EventLogEntryType.Error && entry.TimeGenerated >= start)
{
Console.WriteLine("Error in Event Log:\n" + entry.Message + "\n");
errorFound = true;
}
}
return errorFound;
}
Şu anda, bu kodu (yetkisiz bir işlemi gerçekleştirmek için teşebbüs) bir istisna atar. MSDN'a göre, EventLogPermission'a ihtiyacım var, ancak bu izni nasıl kullanacağına dair herhangi bir örnek bulmaya çalışıyorum. Bunu yapmanın bir örneği var mı?
Düzenleme: Yorumlar
yanıt yorumlar için hepinize teşekkür ederim - burada istenen ek bilgiler şunlardır:
istisna foreach
deyimi atılır. Spesifik olarak, in
işaretlendiğinde, adım adım atılan koddan geçerken. Olay günlüğü nesnesini oluşturabildiğim görünüyor, ancak olay günlüğündeki girdilere erişemiyorum.
Hesabımda hedef sistemdeki olay günlüğünü okuma iznim yok, ancak bir hesabın kimlik bilgileri var. Etkinlik görüntüleyici aracılığıyla manuel olarak bağlanırken, başka bir kullanıcı olarak bağlanmak için bir seçenek vardır. Bunu el ile yaptıktan sonra kodum sorunsuz çalıştı. Ancak, bu program her çalıştığında manuel olarak yapmaya dayanamıyorum. İhtiyacım olan şey, başka bir kullanıcı olarak programatik olarak bağlanmanın bir yoludur. EventLogPermission
'un bunu yapmanın yolu olacağını düşündüm, ama belki başka bir yol var. C# 'da farklı bir kullanıcı olarak uzak bir günlüğe nasıl bağlanacağını bilen varsa, tam da aradığım şey bu olurdu.
Özel durum hangi satırı atar? MSDN makalesi sadece yazma iznine ihtiyacınız olduğunu söylüyor - okuma hakkında bir şey söylemiyor. – Gabe
Kullanıcı hesabınızda uzak makinedeki olay günlüğünü okuma izni var mı? Olay Görüntüleyicisi'ni açın ve kontrol etmek için uzaktaki bilgisayara makinenizden bağlanmayı deneyin. –
Sadece kodunuzu deneyin ve uzak sunucudan günlükleri aldım. Her şey iyi çalışıyor. – Polaris