Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En el ejemplo de ExtendingTracing se muestra cómo extender la función de seguimiento en Windows Communication Foundation (WCF) escribiendo seguimientos de actividad definidos por el usuario en el código de cliente y servicio. Escribir seguimientos de actividad definidos por el usuario permite al usuario crear actividades de seguimiento y agrupar seguimientos en unidades lógicas de trabajo. También es posible correlacionar las actividades a través de transferencias (dentro del mismo punto de conexión) y propagación (entre puntos de conexión). En este ejemplo, el seguimiento está habilitado para el cliente y el servicio. Para obtener más información sobre cómo habilitar el seguimiento en archivos de configuración de cliente y servicio, consulte Seguimiento y registro de mensajes.
Este ejemplo se basa en la introducción.
Nota:
El procedimiento de configuración y las instrucciones de compilación de este ejemplo se encuentran al final de este tema.
Propagación de seguimiento y de actividad
El seguimiento de actividad definido por el usuario permite al usuario crear sus propias actividades de seguimiento para agrupar seguimientos en unidades lógicas de trabajo, correlacionar actividades a través de transferencias y propagación, y reducir el costo de rendimiento del seguimiento de WCF (por ejemplo, el costo de espacio en disco de un archivo de registro).
Añadir fuentes personalizadas
Los seguimientos definidos por el usuario se pueden agregar al código de cliente y servicio. Agregar orígenes de seguimiento a los archivos de configuración de cliente o servicio permite grabar y mostrar estos seguimientos personalizados en la herramienta Visor de seguimiento de servicio (SvcTraceViewer.exe). En el código siguiente se muestra cómo agregar un origen de seguimiento definido por el usuario denominado ServerCalculatorTraceSource
al archivo de configuración.
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="xml">
<filter type="" />
</add>
</listeners>
</source>
<source name="ServerCalculatorTraceSource" switchValue="Information,ActivityTracing">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="xml">
<filter type="" />
</add>
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\logs\ServerTraces.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="xml" traceOutputOptions="Callstack">
<filter type="" />
</add>
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
....
Correlacionar actividades
Para correlacionar las actividades directamente entre puntos de conexión, el atributo propagateActivity
debe establecerse como true
en el origen de seguimiento System.ServiceModel
. Además, para propagar seguimientos sin pasar por actividades de WCF, se debe desactivar el seguimiento de actividad de ServiceModel. Esto se puede ver en el ejemplo de código siguiente.
Nota:
Desactivar el seguimiento de actividad de ServiceModel no es el mismo que tener el nivel de seguimiento, indicado por la switchValue
propiedad , establecido en desactivado.
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
...
</source>
</sources>
</system.diagnostics>
Reducir el costo de rendimiento
Al establecer ActivityTracing
en desactivado en el System.ServiceModel
origen de seguimiento, se genera un archivo de seguimiento que contiene únicamente los seguimientos de actividad definidos por el usuario y excluye los seguimientos de actividad de ServiceModel. Excluir los seguimientos de actividad de ServiceModel da como resultado un archivo de registro mucho más pequeño. Sin embargo, se pierde la oportunidad de correlacionar las trazas de procesamiento de WCF.
Configuración, compilación y ejecución del ejemplo
Asegúrese de que ha realizado el procedimiento de instalación única para los ejemplos de Windows Communication Foundation.
Para compilar el código C# o Visual Basic .NET Edition de la solución, siga las instrucciones de Building the Windows Communication Foundation Samples.
Para ejecutar el ejemplo en una configuración con un solo equipo o con varios, siga las instrucciones que se indican en Ejecución de los ejemplos de Windows Communication Foundation.