Visualización de seguimientos etw para el servicio WCF con un identificador de proveedor etw no predeterminado
En este artículo se describe un problema por el que el servicio Windows Communication Foundation (WCF) usa un identificador de proveedor de seguimiento de eventos no predeterminado para Windows (ETW) al ver seguimientos etw.
Versión del producto original: Windows Communication Foundation
Número KB original: 2120508
Resumen
WCF 4.0 emite seguimientos a ETW. Consulte Seguimiento analítico con ETW para obtener más información. De forma predeterminada, los seguimientos etw se emiten con el identificador de proveedor predeterminado ({ C651F5F6-1C0D-492E-8AE1-B4EFD7C9D503 }). El .NET Framework 4 registra un manifiesto ETW para este identificador de proveedor. Si se registra un manifiesto, los eventos ETW se pueden descodificar y ver en el visor Windows eventos.
WCF permite que los eventos se emita en un identificador de proveedor no predeterminado cambiando el identificador de proveedor en la configuración. En este caso, los eventos no se pueden decodificar en el visor de eventos, ya que un manifiesto no está registrado para este identificador de proveedor.
Más información
WCF permite emitir eventos en un identificador de proveedor específico cambiando la configuración de la siguiente manera:
<configuration>
<system.serviceModel>
<diagnostics etwProviderId="52A3165D-4AD9-405C-B1E8-7D9A257EAC9F" />
</system.serviceModel>
</configuration>
Ahora, dado que el manifiesto con identificador de 52A3165D-4AD9-405C-B1E8-7D9A257EAC9F proveedor no está registrado, los eventos no se pueden decodificar. Para leer los eventos, hay dos opciones:
Opción 1:
Cree e inicie una sesión de ETW que escuche eventos con el identificador de proveedor específico.
> logman create trace myETWSession -o "C:\Temp\mylog.etl" -ets -p {52A3165D-4AD9-405C-B1E8-7D9A257EAC9F} -mode Append -ft 1 > Logman start myETWSessionconfiguration>Cuando esté listo para ver los registros, detenga la sesión.
> Logman stop myETWSessionCopie el archivo de manifiesto ETW del .NET Framework 4 en el directorio de registros y modifique el identificador del proveedor en el manifiesto. Copie
Microsoft.Windows.ApplicationServer.Applications.mandel directorio .NET Framework 4 ac:\Temp.Modifique el identificador del proveedor en
Microsoft.Windows.ApplicationServer.Applications.man52A3165D-4AD9-405C-B1E8-7D9A257EAC9F.
En el manifiesto ubicado enC:\Tempcambiar el guid:<provider name="Microsoft-Windows-Application Server-Applications" guid ="{c651f5f6-1c0d-492e-8ae1-b4efd7c9d503 }" ...../>Formatee el archivo de seguimiento con este comando:
tracerpt -l <tracefile name>.etl -import Microsoft.Windows.ApplicationServer.Applications.man -of EVTXAbra el archivo evtx generado en el Visor de eventos.
Opción 2:
Registre el manifiesto etw con el identificador de proveedor no predeterminado, tal como se describe en Configurar el seguimiento de un flujo de trabajo en la sección Registrar un identificador de proveedor específico de la aplicación