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 grundlegenden WCF-Dienst, in dem Ereignisse vom Dienst an das Ereignisprotokoll ausgegeben werden. Dieses kann mit der Ereignisanzeige angezeigt werden. Es ist auch möglich, eine dedizierte ETW-Sitzung zu starten, die Ereignisse des WCF-Diensts überwacht. Das Beispiel enthält ein Skript zum Erstellen einer dedizierten ETW-Sitzung, in der Ereignisse in einer Binärdatei gespeichert werden, die mithilfe der Ereignisanzeige gelesen werden kann.
So verwenden Sie dieses Beispiel
Öffnen Sie mit Visual Studio die Projektmappendatei "EtwAnalyticTraceSample.sln".
Drücken Sie STRG+UMSCHALT+B, um die Projektmappe zu erstellen.
Drücken Sie STRG+F5, um die Projektmappe auszuführen.
Klicken Sie im Webbrowser auf Calculator.svc. Der URI des WSDL-Dokuments für den Dienst wird daraufhin im Browser angezeigt. Kopieren Sie diesen URI.
Standardmäßig beginnt der Dienst mit der Überwachung von Anforderungen an Port 1378
http://localhost:1378/Calculator.svc
.Führen Sie den WCF-Testclient (WcfTestClient.exe) aus.
Der WCF-Testclient (WcfTestClient.exe) befindet sich unter
\<Visual Studio Install Dir>\Common7\IDE\WcfTestClient.exe
.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
.Öffnen Sie die Ereignisanzeige.
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.
Wählen Sie im Menü Start die Option Verwaltungstools und dann Ereignisanzeige aus. Aktivieren Sie die Protokolle Analytisch und Debuggen.
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, und wählen Sie Ansicht und dann Analyse- und Debugprotokolle anzeigen aus.
Stellen Sie sicher, dass die Option Analyse- und Debugprotokolle anzeigen aktiviert ist.
Aktivieren Sie das Protokoll Analytisch.
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
Wechseln Sie zurück zum -Testclient, doppelklicken Sie auf
Divide
, und behalten Sie die Standardwerte bei, die als Nenner 0 angeben.Wenn der Nenner 0 ist, löst der Dienst einen Fehler aus.
Beachten Sie die vom Dienst ausgegebenen Ereignisse.
Wechseln Sie zurück zur Ereignisanzeige, und navigieren Sie zu Ereignisanzeige, Anwendungs- und Dienstprotokolle, Microsoft, Windows und dann Application Server-Anwendungen. Klicken Sie mit der rechten Maustaste auf Analytisch, und wählen Sie Aktualisieren aus.
Die analytischen Ablaufverfolgungsereignisse in WCF werden in der Ereignisanzeige angezeigt. Beachten Sie, dass ein Fehler als Ablaufverfolgungsereignis in der Ereignisanzeige angezeigt wird, da ein Fehler vom Dienst ausgelöst wurde.
Wiederholen Sie Schritt 1 und 2 mit gültigen Eingaben. Der Wert des
N2
-Parameters kann eine beliebige Zahl außer 0 sein.Aktualisieren Sie den analytischen Kanal, um die WCF-Ereignisse anzuzeigen, wobei keine Fehlerereignisse vorhanden sind.
Im Beispiel werden die von einem WCF-Dienst ausgegebenen analytischen Ablaufverfolgungsereignisse veranschaulicht.
So führen Sie eine (optionale) Bereinigung durch
Öffnen Sie die Ereignisanzeige.
Navigieren Sie zu Ereignisanzeige, Anwendungs- und Dienstprotokolle, Microsoft, Windows und dann zu Anwendungsserveranwendungen. Klicken Sie mit der rechten Maustaste auf Analytisch, und wählen Sie Protokoll deaktivieren aus.
Navigieren Sie zu Ereignisanzeige, Anwendungs- und Dienstprotokolle, Microsoft, Windows und dann zu Anwendungsserveranwendungen. Klicken Sie mit der rechten Maustaste auf Analytisch, und wählen Sie Protokoll löschen aus.
Wählen Sie die Option Löschen aus, um die Ereignisse zu löschen.