Freigeben über


WCF-Dienste und Ereignisablaufverfolgung für Windows

Das ETWTracing-Beispiel veranschaulicht, wie die analysebezogene Ablaufverfolgung in Windows Communication Foundation (WCF) zum Ausgeben von Ereignissen in der Ereignisablaufverfolgung für Windows (ETW) verwendet wird. Die analytische Ablaufverfolgung besteht aus Ereignissen, die an Schlüsselpunkten im WCF-Stapel ausgegeben werden und die Problembehandlung der WCF-Dienste in der Produktionsumgebung zulassen.

Die analytische Ablaufverfolgung in ist eine Methode der Ablaufverfolgung, die in einer Produktionsumgebung mit minimalen Auswirkungen auf die Leistung aktiviert werden kann. Diese Ablaufverfolgungen werden als Ereignisse zu einer ETW-Sitzung ausgegeben.

Dieses Beispiel enthält einen einfachen WCF-Dienst, in dem Ereignisse aus dem Dienst in das Ereignisprotokoll ausgegeben werden, die mithilfe der Ereignisanzeige angezeigt werden können. Es ist auch möglich, eine dedizierte ETW-Sitzung zu starten, die ereignisse vom WCF-Dienst überwacht. Das Beispiel enthält ein Skript zum Erstellen einer dedizierten ETW-Sitzung, die Ereignisse in einer Binärdatei speichert, die mithilfe der Ereignisanzeige gelesen werden kann.

So verwenden Sie dieses Beispiel

  1. Öffnen Sie mit Visual Studio die EtwAnalyticTraceSample.sln Projektmappendatei.

  2. Um die Lösung zu erstellen, drücken Sie Strg+Umschalt+B.

  3. Um die Lösung auszuführen, drücken Sie STRG+F5.

    Klicken Sie im Webbrowser auf Rechner.svc. Der URI des WSDL-Dokuments für den Dienst sollte im Browser angezeigt werden. Kopieren Sie diesen URI.

    Standardmäßig beginnt der Dienst mit der Überwachung von Anforderungen an Port 1378 http://localhost:1378/Calculator.svc.

  4. Führen Sie den WCF-Testclient aus (WcfTestClient.exe).

    Der WCF-Testclient (WcfTestClient.exe) befindet sich unter \<Visual Studio Install Dir>\Common7\IDE\WcfTestClient.exe.

  5. Fügen Sie im WCF-Testclient den Dienst hinzu, indem Sie "Datei" und dann " Dienst hinzufügen" auswählen.

    Fügen Sie die Endpunktadresse im Eingabefeld hinzu. Der Standardwert lautet http://localhost:1378/Calculator.svc.

  6. Öffnen Sie die Ereignisanzeigeanwendung.

    Starten Sie vor dem Aufrufen des Diensts die Ereignisanzeige. Stellen Sie sicher, dass das Ereignisprotokoll auf das Nachverfolgen von Ereignissen lauscht, die vom WCF-Dienst ausgegeben werden.

  7. Wählen Sie im Startmenü"Verwaltungstools" und dann " Ereignisanzeige" aus. Aktivieren Sie die Analyse- und Debugprotokolle .

  8. Navigieren Sie in der Strukturansicht der Ereignisanzeige zu Ereignisanzeige, Anwendungs- und Dienstprotokolle, Microsoft, Windows und dann zu Anwendungsserveranwendungen. Klicken Sie mit der rechten Maustaste auf "Anwendungsserveranwendungen", wählen Sie "Ansicht" aus, und zeigen Sie dann Analyse- und Debugprotokolle an.

    Stellen Sie sicher, dass die Option "Analyse- und Debugprotokolle anzeigen " aktiviert ist.

  9. Aktivieren Sie das Analyseprotokoll .

    Navigieren Sie in der Strukturansicht der Ereignisanzeige zu Ereignisanzeige, Anwendungs- und Dienstprotokolle, Microsoft, Windows und dann zu Anwendungsserveranwendungen. Klicken Sie mit der rechten Maustaste auf Analytisch, und wählen Sie Protokoll aktivieren aus.

So testen Sie den Dienst

  1. Wechseln Sie zurück zum WCF-Testclient und doppelklicken Sie auf Divide, wobei Sie die Standardwerte beibehalten, die einen Nenner von 0 angeben.

    Wenn der Nenner 0 ist, löst der Dienst einen Fehler aus.

  2. Beobachten Sie die Ereignisse, die vom Service gesendet werden.

    Wechseln Sie zurück zur Ereignisanzeige, und navigieren Sie zu Ereignisanzeige, Anwendungs- und Dienstprotokollen, Microsoft, Windows und dann Anwendungsserveranwendungen. Klicken Sie mit der rechten Maustaste auf "Analyse" , und wählen Sie "Aktualisieren" aus.

    Die analytischen Ablaufverfolgungsereignisse in WCF werden in der Ereignisanzeige angezeigt. Beachten Sie, dass aufgrund eines vom Dienst ausgelösten Fehlers ein Fehlerprotokollereignis in der Ereignisanzeige angezeigt wird.

  3. Wiederholen Sie die Schritte 1 und 2, jedoch mit gültigen Eingaben. Der Wert des N2 Parameters kann eine beliebige andere Zahl als 0 sein.

    Aktualisieren Sie den Analysekanal, um die WCF-Ereignisse anzuzeigen, die keine Fehlerereignisse enthalten.

Im Beispiel werden die von einem WCF-Dienst ausgegebenen analytischen Ablaufverfolgungsereignisse veranschaulicht.

So führen Sie eine (optionale) Bereinigung durch

  1. Öffnen Sie die Ereignisanzeige.

  2. Navigieren Sie zu Ereignisanzeige, Anwendungen und Diensten protokollieren, Microsoft, Windows und dann Application-Server-Applications. Klicken Sie mit der rechten Maustaste auf "Analyse" , und wählen Sie "Protokoll deaktivieren" aus.

  3. Navigieren Sie zu Ereignisanzeige, Anwendungen und Diensten protokollieren, Microsoft, Windows und dann Application-Server-Applications. Klicken Sie mit der rechten Maustaste auf "Analyse" , und wählen Sie "Protokoll löschen" aus.

  4. Wählen Sie die Option "Löschen " aus, um die Ereignisse zu löschen.

Siehe auch