Partager via


Consultation des journaux de messages

Cette rubrique explique comment consulter les journaux de 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 codeur 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. Nous vous recommandons d'utiliser Service Trace Viewer Tool (SvcTraceViewer.exe) pour consulter les fichiers journaux de messages. Pour plus d'informations sur 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 dans 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.

ms730918.note(fr-fr,VS.90).gifRemarque :
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 Service Trace Viewer Tool (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 incompatibles.
  • 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".
  • Le codage est activé pour la conversion au format UTF-8.

Voir aussi

Concepts

Utilisation de Service Trace Viewer pour afficher les suivis corrélés et résoudre les problèmes

Autres ressources

Service Trace Viewer Tool (SvcTraceViewer.exe)
Enregistrement des messages