Seguimiento y registro de mensajes

Download sample

Este ejemplo muestra cómo habilitar el seguimiento y registro de mensajes. Los rastros resultantes y registros de mensajes se ven utilizando Service Trace Viewer Tool (SvcTraceViewer.exe). Este ejemplo se basa en el Ejemplo de introducción.

Nota

El procedimiento de instalación y las instrucciones de compilación de este ejemplo se encuentran al final de este tema.

Seguimiento

Windows Communication Foundation (WCF) utiliza el mecanismo de la traza definido en el espacio de nombres System.Diagnostics. Los orígenes de seguimiento que las aplicaciones implementan generan la información de seguimiento en este modelo de seguimiento. Un nombre identifica cada origen. Los consumidores de seguimiento crean los agentes de escucha de seguimiento para los orígenes de seguimiento para los que desean recuperar información. Debe crear un agente de escucha para que el origen de seguimiento reciba la información de seguimiento. En WCF, esto se puede hacer agregando el código siguiente al archivo de configuración del servicio o a la configuración del cliente estableciendo el Modelo de servicio de origen de seguimiento switchValue:

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel" switchValue="Information,ActivityTracing"
        propagateActivity="true">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add initializeData="C:\logs\TracingAndLogging-service.svclog" type="System.Diagnostics.XmlWriterTraceListener"
        name="xml" />
    </sharedListeners>
    <trace autoflush="true" />
</system.diagnostics>

Para obtener más información sobre los orígenes de seguimiento, consulte la sección Origen de seguimiento en el tema Configuring Tracing.

Seguimiento de actividad y propagación

Tener ActivityTracing habilitado y propagateActivity establecido en true en los orígenes del seguimiento system.ServiceModel para el cliente y el servicio proporciona correlación de rastros dentro de las unidades lógicas de procesamiento (actividades), a través de las actividades dentro de los extremos (a través de las transferencias de actividad), y a través de las actividades que abarcan varios extremos (a través de la propagación del Id. de actividad).

Estos tres mecanismos (actividades, transferencias y propagación) pueden ayudarle a buscar la causa principal de un error más rápidamente utilizando Service Trace Viewer tool. Para obtener más información, consulte Using Service Trace Viewer for Viewing Correlated Traces and Troubleshooting.

Es posible extender la traza que proporciona el ServiceModel al crear los rastros de actividad definidos por el usuario. El seguimiento de la actividad definido por el usuario le permite al usuario crear las actividades de seguimiento para:

  • Agrupar rastros en las unidades lógicas de trabajo.

  • Poner en correlación las actividades a través de las transferencias y la propagación.

  • Disminuya el coste de rendimiento de traza WCF (por ejemplo, el coste del espacio en disco de un archivo de registro).

Para obtener más información sobre seguimiento de actividad definido por el usuario, vea el ejemplo Extensión del seguimiento.

Registro de mensajes

El registro de mensajes puede estar habilitado tanto en el cliente, como en el servicio de cualquier aplicación WCF. Para habilitar el registro de mensajes, debe agregar el código siguiente al cliente o servicio:

<configuration>
  <system.serviceModel>
    <diagnostics>
      <!-- Enable Message Logging here. -->
      <!-- log all messages received or sent at the transport or service model levels >
      <messageLogging logEntireMessage="true"
                      maxMessagesToLog="300"
                      logMessagesAtServiceLevel="true"
                      logMalformedMessages="true"
                      logMessagesAtTransportLevel="true" />
    </diagnostics>
  </system.serviceModel>
</configuration>

Cuando se graba un mensaje, el tipo de seguimiento depende de si se sigue paso a paso en el cliente o en el servidor. Por ejemplo, un mensaje "Agregar" que se envía a un cliente se sigue paso a paso bajo la categoría "TransportWrite" en el cliente, mientras que el mismo mensaje se sigue paso a paso bajo la categoría "TransportRead" en el servicio.

Configurar el agente de escucha de seguimiento agregando el código siguiente a la sección System.Diagnostics del archivo App.config del cliente o el archivo Web.config del servicio:

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel" switchValue="Information,ActivityTracing"
        propagateActivity="true">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add initializeData="C:\logs\TracingAndLogging-client.svclog" type="System.Diagnostics.XmlWriterTraceListener"
        name="xml" />
    </sharedListeners>
    <trace autoflush="true" />
  </system.diagnostics>

Los mensajes están registrados en formato XML en el directorio de destino especificado en el archivo de configuración.

Nota

Los archivos de traza no se crean sin crear inicialmente el directorio de registro. Asegurarse de que el directorio C:\logs\ existe, o especifique un directorio de registro alternativo en la configuración del agente de escucha. Vea las instrucciones de operación preliminar al final de este documento para obtener más información.

Para obtener más información sobre el registro de mensajes, consulte el tema Configuring Message Logging.

Para configurar, generar y ejecutar el ejemplo

  1. Asegúrese de que ha realizado el Procedimiento de instalación único para ejemplos de Windows Communication Foundation.

  2. Antes de ejecutar el ejemplo del Registro de mensajes y del seguimiento, cree el directorio C:\logs\ para que el servicio escriba los archivos .svc. El nombre de este directorio se define en el archivo de configuración como la ruta de acceso para los rastros y los mensajes que han de registrarse y que pueden cambiarse. Indique el acceso de escritura Network Service del usuario al directorio de registros.

  3. Para generar el código C#, C++ o Visual Basic .NET Edition de la solución, siga las instrucciones de Generación de ejemplos de Windows Communication Foundation.

  4. Para ejecutar el ejemplo en una configuración de equipos única o cruzada, siga las instrucciones de Ejecución de ejemplos de Windows Communication Foundation.

Consulte también

Otros recursos

Tracing

Footer image

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.