Anzeigen von ETW-Ablaufverfolgungen für den WCF-Dienst mit einer nicht standardmäßigen ETW-Anbieter-ID

In diesem Artikel wird ein Problem beschrieben, bei dem Windows Communication Foundation (WCF) Dienst eine nicht standardmäßige Ereignisablaufverfolgung für Windows (ETW)-Anbieter-ID verwendet, wenn Sie ETW-Ablaufverfolgungen anzeigen.

Original Version des Produkts:   Windows Communication Foundation
Ursprüngliche KB-Nummer:   2120508

Zusammenfassung

WCF 4,0 gibt Ablaufverfolgungen zu etw aus. Weitere Informationen finden Sie unter analytische Ablaufverfolgung mit etw . Standardmäßig werden die ETW-Ablaufverfolgungen mit der standardmäßigen Anbieter-ID ({ C651F5F6-1C0D-492E-8AE1-B4EFD7C9D503 }) ausgegeben. Das .NET Framework 4 registriert ein etw-Manifest für diese Anbieter-ID. Wenn ein Manifest registriert ist, können die ETW-Ereignisse decodiert und in der Windows-Ereignisanzeige angezeigt werden.

WCF ermöglicht, dass Ereignisse für eine nicht standardmäßige Anbieter-ID ausgegeben werden, indem die Anbieter-ID in der config geändert wird. In diesem Fall sind die Ereignisse in der Ereignisanzeige nicht decodierbar, da ein Manifest für diese Anbieter-ID nicht registriert ist.

Weitere Informationen

WCF ermöglicht, dass Ereignisse für eine bestimmte Anbieter-ID ausgegeben werden, indem die Konfiguration wie folgt geändert wird:

<configuration>
    <system.serviceModel>
        <diagnostics etwProviderId="52A3165D-4AD9-405C-B1E8-7D9A257EAC9F" />
    </system.serviceModel>
</configuration>

Da das Manifest mit der Anbieter-ID nun 52A3165D-4AD9-405C-B1E8-7D9A257EAC9F nicht registriert ist, sind die Ereignisse nicht decodierbar. Zum Lesen der Ereignisse gibt es zwei Optionen:

  • Option 1:

    1. Erstellen und starten Sie eine ETW-Sitzung, die Ereignisse mit der spezifischen Anbieter-ID überwacht.

      > logman create trace myETWSession -o "C:\Temp\mylog.etl" -ets -p {52A3165D-4AD9-405C-B1E8-7D9A257EAC9F} -mode Append -ft 1
      > Logman start myETWSessionconfiguration>
      
    2. Wenn Sie die Protokolle anzeigen möchten, beenden Sie die Sitzung.

      > Logman stop myETWSession
      
    3. Kopieren Sie die ETW-Manifestdatei aus .NET Framework 4 Verzeichnis in das Verzeichnis Logs, und ändern Sie die Anbieter-ID im Manifest. Kopieren Microsoft.Windows.ApplicationServer.Applications.man aus dem .NET Framework 4-Verzeichnis in c:\Temp .

    4. Ändern Sie die Anbieter-ID in Microsoft.Windows.ApplicationServer.Applications.man auf 52A3165D-4AD9-405C-B1E8-7D9A257EAC9F .
      Im Manifest befindet sich in C:\Temp Ändern der GUID:

      <provider name="Microsoft-Windows-Application Server-Applications"
                guid ="{c651f5f6-1c0d-492e-8ae1-b4efd7c9d503 }" ...../>
      
    5. Formatieren Sie die Ablaufverfolgungsdatei mit dem folgenden Befehl:

      tracerpt -l <tracefile name>.etl -import Microsoft.Windows.ApplicationServer.Applications.man -of EVTX
      
    6. Öffnen Sie die generierte evtx-Datei in der Ereignisanzeige.

  • Option 2:

    Registrieren Sie das ETW-Manifest mit der nicht standardmäßigen Anbieter-ID, wie unter Konfigurieren der Überwachung für einen Workflow im Abschnitt Registrieren einer anwendungsspezifischen Anbieter-ID beschrieben.