Wenn ich den folgenden Code zum Schreiben in das Anwendungsereignisprotokoll verwende, funktioniert alles:
%Vor%Wenn ich den Code verwende, der von MSDN und allen anderen Blogs stammt, bekomme ich den Sicherheitsfehler (ich rate, weil CreateEventSource ihn auslöst).
%Vor%Muss ich also überprüfen, ob die Quelle existiert, wenn ich nur in das Anwendungsprotokoll schreiben muss, das dort standardmäßig vorhanden ist?
Was ist der richtige Weg um in EventViewer zu schreiben?
Die CreateEventSource-Methode erstellt eine neue Quelle im Ereignisprotokoll, mit der Sie das Protokoll Ihrer Anwendung in die eigene Gruppe der Anwendung schreiben können, anstatt in die generische Application
-Gruppe zu schreiben.
Vielleicht erhalten Sie einen Fehler, weil der Benutzer, den Sie zum Erstellen der Ereignisquelle verwenden, nicht die Berechtigung zum Erstellen hat. Versuchen Sie, Ihr Programm als Administrator auszuführen, wenn Sie unter Vista / 7 OS arbeiten.
Die richtige Methode zum Anmelden des Ereignis-Viewers hängt von Ihren Anforderungen ab. Wenn Ihre Anwendung eine Menge Protokollierungsnachrichten generiert und Sie dieses Protokoll in einem anwendungsspezifischen Container gruppieren möchten, ist es möglicherweise besser, ein anwendungsspezifisches Protokollereignis zu erstellen Geben Sie das Protokoll ein und schreiben Sie es. Wenn Ihre Anwendung nur wenige Protokollnachrichten generiert und Sie diese nicht gruppieren müssen, können Sie die generische Ereignisquelle Application
log verwenden ...
Ein direkter WriteEntry wird zur Standard-Anwendungsquelle weitergeleitet. Die SourceExists und CreateEventSource sind, wenn Sie Ihre eigene benutzerdefinierte Quelle erstellen möchten, die Protokolleinträge in der Ereignisanzeige einfacher finden wird.
Und ja, Sie müssen Rechte haben, um eine Kundenereignisquelle zu erstellen, wie andere bereits erwähnt haben.
Sie benötigen Administratorrechte, um Ihre Anwendung auszuführen.
Entweder können Sie Ihre Anwendung durch ausführen Gehen Sie in den Debug-Ordner Ihrer Anwendung und klicken Sie mit der rechten Maustaste auf Ihre .exe-Datei und führen Sie sie als Admin aus
oder
Sie führen Visual Studio als Administrator aus
Sie müssen keine Ereignisquelle erstellen. Es kann ein großer Vorteil sein, wenn Ereignisse erzeugt werden, die sprachunabhängig sind oder die Substitutionen haben, aber es ist optional, zumindest für .NET-Programme (die BCL stellt eine Standard-Ereignisquelle bereit).
Tags und Links c# event-log event-viewer