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 este tema se describe cómo se pueden ver los registros de mensajes.
Visualización de registros de mensajes en el Visor de seguimiento de servicio
WCF transformará un mensaje a medida que lo procese. Por lo tanto, un mensaje que se registra refleja solo el contenido del mensaje en el momento en que se registró, no el contenido transmitido por el cable.
Dado que la salida del registro de mensajes no tiene ninguna relación con el formato de transferencia del mensaje, el registro de mensajes siempre genera el mensaje descodificado. Si ha configurado 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 el uso de un codificador de mensajes binarios.
La salida de XmlWriterTraceListener es un archivo que contiene una secuencia de fragmentos XML. Debe tener en cuenta que el archivo no es un archivo XML válido. Se recomienda usar la herramienta Visor de seguimiento de servicio (SvcTraceViewer.exe) para ver los archivos de registro de mensajes. Para obtener más información sobre cómo usar esta herramienta, consulte Uso del Visor de seguimiento de servicio para ver seguimientos correlacionados y solución de problemas.
En el Visor de seguimiento de servicio, los mensajes aparecen en la pestaña Mensaje . Los mensajes que han causado o están relacionados, un error de procesamiento se resalta 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 abre el seguimiento del mensaje en el contexto de la solicitud de procesamiento.
Nota:
Si un mensaje no tiene ningún encabezado, no se registra ninguna <header/>
etiqueta.
Visualización de mensajes registrados por un cliente, un relé y un servicio
El entorno puede contener un cliente, que envía un mensaje a un relé, que a su vez reenvía el mensaje al servicio. Cuando el registro de mensajes está habilitado en las tres ubicaciones y los tres registros de mensajes se ven simultáneamente en service Trace Viewer Tool (SvcTraceViewer.exe), los intercambios de registros de mensajes se representarán incorrectamente. Esto se debe a que CorrelationId
y ActivityId
en el encabezado de mensaje no son únicos para cada par de envío-recepción.
Puede usar cualquiera de los métodos siguientes para resolver este problema.
Visualice únicamente dos de los tres registros de mensajes a la vez en la Herramienta del visor de seguimiento de servicio (SvcTraceViewer.exe).
Si debe visualizar los tres registros en la Herramienta del visor de seguimiento de servicio (SvcTraceViewer.exe) al mismo tiempo, puede crear una nueva instancia de la clase Message para modificar el servicio del relé. Esta instancia debe ser una copia del cuerpo del mensaje entrante, además de todos los encabezados, excepto los encabezados
ActivityId
yAction
. En el código de ejemplo siguiente se muestra cómo hacerlo.
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 de registro de mensajes inexactos
En las siguientes condiciones, es posible que los mensajes que se registran no sean la representación exacta del flujo de octetos presente sobre el cable.
Para BasicHttpBinding, los encabezados de envoltura se registran para los mensajes entrantes en el espacio de nombres /direccionamiento/ninguno.
Los espacios en blanco pueden estar mal alineados.
En el caso de los mensajes entrantes, los elementos vacíos se pueden representar de forma diferente. Por ejemplo, <etiqueta></etiqueta> en lugar de <etiqueta/>
Cuando el registro de PII conocido está deshabilitado de forma predeterminada o explícita estableciendo enableLoggingKnownPii="true".
La codificación está habilitada para transformarse en UTF-8.