Compartir a través de


Visualización de registros de mensajes

En este tema se explica cómo puede ver registros de mensajes.

Visualización de registros de mensajes en Service Trace Viewer

Un mensaje se transforman tal y como se procesaron en WCF. Por consiguiente, un mensaje que se está registrando refleja solo el contenido del mensaje en el punto en el que se registró, no el contenido en la conexión.

Dado que el resultado del registro de mensajes no está relacionado con el formato de transferencia del mensaje, el registro de mensajes siempre tiene como resultado el mensaje decodificado. Si se configura correctamente el registro de mensajes, cualquier mensaje registrado debe estar en texto sin formato. Por ejemplo, el formato (texto sin formato) de los mensajes registrados no se ve afectado por la utilización de un codificador de mensajes binarios.

El resultado de XmlWriterTraceListener es un archivo que contiene una secuencia de fragmentos XML. Debería saber que el archivo no es un archivo XML válido. Para visualizar los archivos de registro de mensajes, use la Herramienta del visor de seguimiento de servicio (SvcTraceViewer.exe). Para obtener más información sobre el uso de esta herramienta, consulte Uso del visor de seguimiento de servicios para ver seguimientos puestos en correlación y solución de problemas.

En la herramienta del visor de seguimiento de servicios, los mensajes se muestran en la pestaña Mensajes. Los mensajes que hayan producido o que estén relacionados con un error de procesamiento se resaltan en amarillo (nivel de advertencia) o rojo (nivel de error), en función de la gravedad del error. Al hacer doble clic en el mensaje se muestra el seguimiento del mensaje en el contexto de la solicitud de procesamiento.

Nota

Si un mensaje no tiene encabezado, no se registra ninguna etiqueta <header/>.

Visualización de los mensajes registrados por un cliente, un relé y un servicio

Su entorno puede contener un cliente, que envía un mensaje a un relé, que seguidamente reenvía el mensaje al servicio. Si la característica de registro de mensajes se habilita en las tres ubicaciones y los tres registros de mensajes se visualizan simultáneamente en la Herramienta del visor de seguimiento de servicio (SvcTraceViewer.exe), los intercambios del registro de mensajes se representarán incorrectamente. Esto se debe a que CorrelationId y ActivityId en el encabezado del mensaje no son únicos para cada par de envío-recepción.

Para solucionar este problema puede usar uno de los métodos siguientes:

Message outgoingMessage = Message.CreateMessage(incomingMessage.Version, incomingMessage.Headers.Action, incomingMessage.GetReaderAtBodyContents());  
  
for (int i = 0; i < incomingMessage.Headers.Count; i++)  
{  
   if (incomingMessage.Headers[i].Name.Equals("ActivityId", StringComparison.InvariantCultureIgnoreCase) ||  
incomingMessage.Headers[i].Name.Equals("Action", StringComparison.InvariantCultureIgnoreCase))  
   {  
      continue;  
    }  
    outgoingMessage.Headers.CopyHeaderFrom(incomingMessage, i);  
}  

Casos excepcionales de contenido del registro de mensajes inexacto

Bajo las condiciones siguientes, los mensajes que se están registrados puede que no sean la representación exacta de la presente secuencia de octeto en la conexión.

  • Para BasicHttpBinding, los encabezados de envoltura se registran para los mensajes entrantes en el espacio de nombres /direccionamiento/ninguno.

  • Es posible que los espacios en blanco no coincidan.

  • Para los mensajes entrantes, los elementos vacíos se pueden representar de manera diferente. Por ejemplo: <tag></tag> en lugar de <tag/>

  • Cuando el registro de PII conocido está deshabilitado de forma predeterminada o explícita estableciendo enableLoggingKnownPii="true".

  • La codificación se habilita para transformar a UTF-8.

Consulte también