Ich habe einen ASMX-Webservice, der als "Netzwerkdienst" ausgeführt wird. Ich möchte jedes Mal in ein benutzerdefiniertes Ereignisprotokoll schreiben können wenn ein Webdienst aufgerufen wird (und wenn Fehler auftreten).Wie kann ich in ein benutzerdefiniertes Ereignisprotokoll von meinem ASMX-Webdienst schreiben, der als Netzwerkdienst ausgeführt wird?
Ich habe ein neues Ereignisprotokoll erstellt (MyLog) als Administrator mit dem folgenden Code auf einem Windows Server 2008-Computer ausgeführt wird:
if (!EventLog.SourceExists(APPLICATIONNAME))
{
EventLog.CreateEventSource(APPLICATIONNAME, EVENTLOGNAME);
}
EventLog.WriteEntry(APPLICATIONNAME, "Service started", EventLogEntryType.Information);
wo APPLICATIONAME ist "MyApp" und EventLogName ist "MyLog" (Name geändert um die Unschuldigen zu schützen).
Zunächst erstellt es ein neues "MyLog" -Ereignisprotokoll (verifiziert mit eventvwr), aber sein Inhalt ist identisch mit dem Anwendungsereignisprotokoll. Ich hatte erwartet, ein leeres Ereignisprotokoll ohne Verbindung zu erhalten.
Zweitens, wenn ich versuche, aus der Application_Start Methode zum neu erstellten Ereignisprotokoll schreiben mit dem folgenden Code:
EventLog.WriteEntry(APPLICATIONNAME, "Service started", EventLogEntryType.Information);
Ich bekomme ein Security vom Typ System.Diagnostics.EventLogPermission.
Ich habe versucht, die ACLs der MyLog-Struktur in der Registrierung zu ändern (wie vorgeschlagen on MSDN), aber ohne Erfolg.
Ich möchte lieber nicht die Identität des Webdienstes ändern noch die ACLs im Anwendungsereignisprotokoll ändern, das von anderen Anwendungen auf dem System verwendet wird.