Partager via


Consultation des journaux de messages

Cette rubrique contient des instructions permettant d'afficher les journaux des messages.

Consultation des journaux de messages dans Service Trace Viewer

Un message sera transformé s’il est traité par WCF. Par conséquent, un message consigné reflète uniquement le contenu du message au moment où il a été consigné, et non pas le contenu sur le câble.

Comme la sortie de l'enregistrement des messages n'est pas liée au format de transfert du message, l'enregistrement des messages génère le message décodé. Si vous avez configuré l'enregistrement des messages correctement, tout message enregistré doit être au format de texte brut. Par exemple, le format (texte brut) des messages enregistrés n'est pas affecté par l'utilisation d'un encodeur de message binaire.

La sortie de XmlWriterTraceListener est un fichier qui contient une séquence de fragments XML. Sachez qu'il ne s'agit pas d'un fichier XML valide. Il est recommandé d’utiliser l’Outil Service Trace Viewer (SvcTraceViewer.exe) pour afficher les fichiers journaux de messages. Pour plus d’informations l’utilisation de cet outil, consultez Utilisation de Service Trace Viewer pour afficher les suivis corrélés et résoudre les problèmes.

Dans Service Trace Viewer, les messages sont répertoriés sous l’onglet Message. Les messages qui ont provoqué, ou qui sont liés à, une erreur de traitement sont surlignés en jaune (niveau d’avertissement) ou en rouge (niveau d’erreur), selon la gravité de l’erreur. Si vous double-cliquez sur le message, le suivi du message s'affiche dans le contexte de la demande.

Notes

Si un message n'a pas d'en-tête, aucune balise <header/> n'est enregistrée.

Consultation des messages consignés par un client, un relais et un service

Votre environnement peut contenir un client, qui envoie un message à un relais, qui par la suite envoie le message au service. Si la journalisation des messages est activée sur les trois emplacements, et que les trois journaux de messages sont affichés dans l’Outil Service Trace Viewer (SvcTraceViewer.exe) simultanément, les échanges de journaux de messages seront restitués de manière incorrecte. Cela est dû au fait que CorrelationId et ActivityId dans l'en-tête de message ne sont pas uniques pour chaque paire émetteur-récepteur.

Pour résoudre ce problème, utilisez l'une des méthodes suivantes :

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);  
}  

Cas exceptionnels de contenu de journalisation de message inexact

Dans les conditions suivantes, les messages consignés peuvent ne pas être la représentation exacte du flux d'octets présent sur le câble.

  • Concernant BasicHttpBinding, les en-têtes d'enveloppe sont enregistrés pour les messages entrants de l'espace de noms /addressing/none.

  • Les espaces blancs peuvent être discordants.

  • Concernant les messages entrants, les éléments vides peuvent être représentés différemment. Par exemple, <tag></tag> au lieu de <tag/>

  • Lorsque la journalisation PII connue est désactivée soit par défaut, soit par le paramètre explicite enableLoggingKnownPii= "true".

  • L'encodage est activé pour la conversion au format UTF-8.

Voir aussi