Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Es gibt verschiedene Möglichkeiten zum Debuggen einer Dienstanwendung. Um die richtige Methode auszuwählen, müssen Sie zunächst zwei Optionen treffen: die Uhrzeit, zu der der Debugger an die Dienstanwendung angefügt ist und welche Debugkonfiguration verwendet werden soll.
Es gibt drei Phasen, in denen der Debugger an die Dienstanwendung angefügt werden kann:
Der Anfang des Dienststarts. Der Debugger wird automatisch gestartet, wenn der Dienst beginnt. Wählen Sie diese Option aus, wenn Sie den Initialisierungscode des Diensts debuggen möchten.
Wenn der Dienst zum ersten Mal auf eine Ausnahme stößt. Der Debugger wird automatisch gestartet, wenn eine Ausnahme oder ein Absturz auftritt oder wenn die Dienstanwendung die DebugBreak--Funktion aufruft. Wählen Sie diese Option aus, wenn der Debugger angezeigt werden soll, falls ein Problem auftritt, aber nicht zuvor.
Nachdem der Dienst normal läuft. Sie können einen Debugger manuell an einen Dienst anhängen, der bereits ausgeführt wird. Wählen Sie diese Option aus, wenn Sie keine vorbereitungen für das Debuggen vornehmen möchten.
Es gibt drei Debugkonfigurationen, die Sie auswählen können:
Lokales Debugging Ein einzelner Debugger, der auf demselben Computer wie der Dienst ausgeführt wird.
Remotedebuggen. Ein Debugserver, der auf demselben Computer wie der Dienst ausgeführt wird, wird von einem Debugclient gesteuert, der auf einem zweiten Computer ausgeführt wird.
Kernelgesteuertes Debuggen im Benutzermodus. Ein Benutzermodusdebugger, der auf demselben Computer wie der Dienst ausgeführt wird und von einem Kerneldebugger auf einem zweiten Computer gesteuert wird.
Wenn Ihr Dienst unter Windows Vista oder einer höheren Version von Windows ausgeführt wird, gibt es eine Einschränkung, wie diese Optionen kombiniert werden können. Wenn Sie vom Anfang des Dienststarts, oder ab dem Zeitpunkt, zu dem eine Ausnahme auftritt, debuggen möchten, müssen Sie entweder Remotedebugging oder Benutzermodus-Debugging, das vom Kernel gesteuert wird, verwenden.
Anders ausgedrückt: Sie können das lokale Debuggen nur verwenden, wenn Sie den Debugger manuell anfügen möchten, nachdem der Dienst bereits ausgeführt wurde. Diese Einschränkung ergibt sich aus der Tatsache, dass in diesen Versionen von Windows Dienste in Sitzung 0 ausgeführt werden, und jeder Debugger, der automatisch gestartet und an den Dienst angefügt wird, ebenfalls in Sitzung 0 ist und keine Benutzeroberfläche auf dem Computer hat, auf dem der Dienst ausgeführt wird.