Compartir a través de


Seguimiento y registro de mensajes

El ejemplo de TracingAndLogging muestra cómo habilitar el seguimiento y el registro de mensajes. Los seguimientos resultantes y los registros de mensajes se visualizan con la herramienta del visor de seguimiento de servicio (SvcTraceViewer.exe). Este ejemplo se basa en la 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) usa el mecanismo de seguimiento que se define 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 mediante la agregación del siguiente código al archivo de configuración del servicio o del cliente al configurar el origen de seguimiento del modelo de servicio 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 Configuración de seguimiento.

Seguimiento de actividad y propagación

Después de habilitar ActivityTracing y establecer propagateActivity en true en los orígenes de seguimiento system.ServiceModel para el cliente y el servicio, proporcione la correlación de seguimientos en unidades lógicas de procesamiento (actividades), entre actividades de puntos de conexión (a través de transferencias de actividades) y entre actividades que abarcan varios puntos de conexión (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 Uso del visor de seguimiento de servicios para ver seguimientos puestos en correlación y solución de problemas.

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 costo de rendimiento de seguimiento WCF (por ejemplo, el costo del espacio en disco de un archivo de registro).

Para obtener más información sobre el seguimiento de la actividad que define el usuario, consulte el ejemplo de extensión del seguimiento.

Registro de mensajes

El registro de mensajes puede estar habilitado para el cliente y 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 configuració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 Configuración de registro de mensajes .

Configurar, compilar y ejecutar el ejemplo

  1. Asegúrese de que ha llevado a cabo el Procedimiento de instalación única para los 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 compilar la edición de C#, C++ o Visual Basic .NET de la solución, siga las instrucciones de Compilación de los ejemplos de Windows Communication Foundation.

  4. Para ejecutar el ejemplo en una configuración con un solo equipo o con varios, siga las instrucciones de Ejemplos de la ejecución de Windows Communication Foundation.

Consulte también