Frage

Ich habe das folgende Stück Code, das auch in Windows Server 2003 arbeitet, um das Anwendungsereignisprotokoll in Ereignisanzeige schreibt. Der gleiche Code funktioniert nicht in Windows 2008. Die Anwendung abstürzt. Antrag auf Hilfe, wie zum Ereignisprotokoll in Windows Server 2008 schreiben.

if (!EventLog.SourceExists("MyServiceLog"))
{
    EventLog.CreateEventSource("MyServiceLog", "Application");
}
//Create an EventLog instance and assign its source.
EventLog eventLog = new EventLog();
eventLog.Source = "MyServiceLog";
//Write an informational entry to the event log.
eventLog.WriteEntry(Header + ": " + FailureReason);
War es hilfreich?

Lösung

Sie müssen in das Mitglied der lokalen Administrator-Gruppe, um eine neue Ereignisquelle zu erstellen. Die Quelle existiert wahrscheinlich auf Server 2003 oder Sie bereits über die erforderlichen Berechtigungen auf diesem Betriebssystem hat. Auf Server 2008 ist die Standardeinstellung ohne erhöhten Rechten auszuführen, auch wenn Sie ein Administrator sind. In diesem Fall müssen Sie rechts Ihre Anwendung klicken und wählen Sie „Als Administrator ausführen“.

Andere Tipps

Es hat mit den neuen Berechtigungssätzen in Windows 2008 zu tun und Ihr Konto nicht über den privilegierten Zugriff neue Ereignisprotokollquellen zu erstellen.

Wenn Sie ein Installationsprogramm für Ihre Anwendung zu erstellen, am besten wird diese Ereignisprotokollquellen dann zu erstellen, da in der Regel müssen Sie die Installateure mit privilegierten Rechten ausgeführt werden.

re ‚die Anwendung abstürzt‘ - das ist nicht in verwalteten Umgebung passieren soll. Vielleicht ist es die Berechtigungen im Zusammenhang mit in diesem Fall, aber Sie werden für immer im Dunkeln sein und einen Neustart des app, wenn Sie Logik Griff Fehler (das heißt Ausnahmen) hinzuzufügen.

Ändern Sie diese zu

try 
{ 
    /* put your event log code here */ 
} 
catch (Exception e) 
{ 
    /* new code to gracefully handle errors */ 
}

und Blick auf die Ausnahmeklasse und Feldern (wie e.Message, e.StrackTrace), dass Sie genau das bekommen, um herauszufinden, was falsch ist und wo es passiert ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top