Articles

The Core Technologies Blog

Ein Windows-Dienst, der „kopflos“ und unbeaufsichtigt im Hintergrund laufen soll, kann nicht ohne weiteres herkömmliche Popup-Fenster verwenden, um über seine Aktivitäten zu berichten, da ein Benutzer möglicherweise nicht einmal angemeldet ist. Stattdessen wird ein Dienst ermutigt, wichtige Mitteilungen an das Windows-Ereignisprotokoll zu senden – ein Verwaltungsprogramm, das Nachrichten und Ereignisse sammelt und speichert. Einmal aufgezeichnet, können diese Meldungen bei der Problembehandlung sehr hilfreich sein, z. B. wenn ein Dienst unerwartet anhält oder überhaupt nicht startet.

Anzeigen von Ereignissen von Windows-Diensten

Verwenden Sie die Ereignisanzeige von Microsoft, um die in das Ereignisprotokoll geschriebenen Meldungen anzuzeigen. Starten Sie die Anwendung, indem Sie auf die Schaltfläche „Start“ klicken und „Event Viewer“ eingeben oder über die Systemsteuerung (nach dem Namen suchen). Das etwas unübersichtliche Fenster sollte nach ein paar Sekunden erscheinen:

Event Viewer

Auf der linken Seite sehen Sie eine Baumstruktur, in der die verschiedenen auf Ihrem Computer erfassten Protokolle gruppiert sind. Die Ereignisse der Windows-Dienste (und anderer auf Ihrem PC laufender Anwendungen) werden unter Windows-Protokolle > Anwendung abgelegt. Navigieren Sie zu diesem Abschnitt, um die Ereignisse in der Mitte des Fensters zu laden, mit der gesamten Liste oben und den Details des markierten Ereignisses darunter:

Event Viewer - Application Log

Meldungen von Ihrem Windows-Dienst haben den Anzeigenamen des Dienstes in der Spalte Quelle.

Wichtige Komponenten eines Ereignisses

Die Ereignisanzeige zeigt über 10 Informationen zu jedem Ereignis an, darunter:

  • Stufe – Wie wichtig ist dieses Ereignis?

    Jedes Ereignis wird in eine von drei Kategorien eingestuft:

    Information: Ein informatives, aber unwichtiges Ereignis. Sie werden wahrscheinlich viele dieser Ereignisse sehen und können getrost ignoriert werden, es sei denn, Sie untersuchen ein bestimmtes Problem in einer Anwendung oder einem Dienst. Warnung: Ein mäßig wichtiges Ereignis. Sie bedeuten nicht unbedingt einen Fehler, und Ihre Software wird wahrscheinlich weiterlaufen, aber sie sollten regelmäßig überprüft werden, um zu sehen, ob etwas davon behoben werden kann. Fehler: Weist auf ein kritisches Problem oder einen Fehler hin, das bzw. der Ihre sofortige Aufmerksamkeit verdient?

  • Datum und Uhrzeit – Wann ist dieses Ereignis eingetreten?
  • Quelle – Welche Anwendung hat dieses Ereignis gemeldet?

    Wie bereits erwähnt, enthält ein von einem Windows-Dienst geschriebenes Ereignis den Anzeigenamen des Dienstes als Quelle.

  • Beschreibung – Was ist passiert?

    Die vollständige Beschreibung, die an prominenter Stelle im unteren Fensterbereich angezeigt wird, enthält (hoffentlich) die relevanten Details des Ereignisses.

Dieses Informationsereignis stammt beispielsweise vom Dienst zur Erkennung interaktiver Dienste („UI0Detect“), der meldet, dass sich Notepad in Sitzung 0 anzeigt:

Interactive Services Detection Service Event

Ereignisse zu Windows-Diensten anzeigen

Während das Anwendungsprotokoll die Ereignisse eines laufenden Dienstes verfolgt, zeichnet der Bereich Windows-Protokolle > System auf, wenn Dienste gestartet, gestoppt werden, abstürzen oder nicht starten. Suchen Sie nach Ereignissen, deren Quelle auf Service Control Manager (SCM) eingestellt ist. Hier ist zum Beispiel der SCM, der uns mitteilt, dass der Windows Print Spooler-Dienst abgestürzt ist:

Event Viewer System Event

Ereignisse von AlwaysUp und Service Protector anzeigen

Sowohl AlwaysUp als auch Service Protector schreiben Meldungen in den Bereich Anwendung der Ereignisprotokolle (Windows Logs > Application).

Für AlwaysUp werden Ereignisse von Ihrer Anwendung mit dem Namen „Meine Anwendung“ protokolliert, wobei die Quelle auf Meine Anwendung (verwaltet von AlwaysUpService) eingestellt ist. Auf der Seite „Ereignisprotokollmeldungen“ werden die gemeldeten Ereignisse aufgelistet und erläutert.