Compartir a través de


Seguimiento y registro de mensajes

En el ejemplo TracingAndLogging se 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.

Rastreo

Windows Communication Foundation (WCF) usa el mecanismo de seguimiento definido en el System.Diagnostics espacio de nombres. En este modelo de seguimiento, los datos de seguimiento se generan mediante orígenes de seguimiento que implementan las aplicaciones. Cada origen se identifica por un nombre. 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 del cliente estableciendo el origen de seguimiento switchValuedel modelo de 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-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 del seguimiento .

Seguimiento y difusión de la actividad

Cuando ActivityTracing está habilitado y propagateActivity se establece en true en las system.ServiceModel fuentes de seguimiento tanto para el cliente como para el servicio, se proporciona la correlación de seguimientos dentro de unidades lógicas de procesamiento (actividades), entre actividades dentro de los puntos de conexión (a través de transferencias de actividad) y entre actividades que abarcan varios puntos de conexión (a través de la propagación del identificador de actividad).

Estos tres mecanismos (actividades, transferencias y propagación) pueden ayudarle a localizar la causa principal de un error más rápidamente mediante la herramienta Visor de seguimiento de servicio. Para obtener más información, consulte Uso del Visor de seguimiento de servicio para ver seguimientos correlacionados y solución de problemas.

Es posible ampliar el seguimiento proporcionado por ServiceModel mediante la creación de seguimientos de actividad definidos por el usuario. El seguimiento de actividad definido por el usuario permite al usuario crear actividades de seguimiento para:

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

  • Correlacionar actividades a través de transferencias y propagación.

  • Reduzca el costo de rendimiento del seguimiento de WCF (por ejemplo, el costo de 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 se puede habilitar 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 al 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 registra un mensaje, el tipo de seguimiento depende de si se realiza un seguimiento en el cliente o en el servidor. Por ejemplo, un mensaje de "Agregar" que se envía a un cliente se rastrea en la categoría "TransportWrite" del cliente, mientras que el mismo mensaje se rastrea en la categoría "TransportRead" en el servicio.

Configure el agente de escucha de seguimiento agregando el código siguiente a la System.Diagnostics sección del archivo App.config del cliente o del 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 se registran en formato XML en el directorio de destino especificado en el archivo de configuración.

Nota:

Los archivos de seguimiento no se crean sin crear inicialmente el directorio de registro. Asegúrese de que el directorio C:\logs\ existe o especifique un directorio de registro alternativo en la configuración del agente de escucha. Consulte las instrucciones de configuración iniciales 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 del registro de mensajes.

Para configurar, compilar y ejecutar el ejemplo

  1. Asegúrese de que ha realizado el procedimiento de instalación única para los ejemplos de Windows Communication Foundation.

  2. Antes de ejecutar el ejemplo de seguimiento y registro de mensajes, cree el directorio C:\logs\ para que el servicio escriba los archivos .svclog en. El nombre de este directorio se define en el archivo de configuración como el destino para registrar los seguimientos y mensajes, y puede modificarse. Indique el acceso de escritura Network Service del usuario al directorio de registros.

  3. Para compilar la edición de .NET de C#, C++o Visual Basic de la solución, siga las instrucciones de Creación de ejemplos de Windows Communication Foundation.

  4. 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.

Consulte también