Delen via


Het bekijken van berichtlogboeken

In dit onderwerp wordt beschreven hoe u berichtlogboeken kunt bekijken.

Berichtlogboeken weergeven in de Service Trace Viewer

Een bericht wordt getransformeerd terwijl het wordt verwerkt door WCF. Daarom weerspiegelt een bericht dat wordt geregistreerd alleen de inhoud van het bericht op het moment dat het is geregistreerd, niet de inhoud op de kabel.

Omdat de uitvoer van berichtlogboekregistratie geen relatie heeft met de overdrachtsindeling van het bericht, voert berichtregistratie altijd het gedecodeerde bericht uit. Als u de logboekregistratie van berichten juist hebt geconfigureerd, moet een geregistreerd bericht in tekst zonder opmaak staan. De notatie (tekst zonder opmaak) van de vastgelegde berichten wordt bijvoorbeeld niet beïnvloed door het gebruik van een binaire berichtcoderingsprogramma.

De uitvoer van de XmlWriterTraceListener is een bestand dat een reeks XML-fragmenten bevat. U moet er rekening mee houden dat het bestand geen geldig XML-bestand is. Het wordt aanbevolen om het hulpprogramma Service Trace Viewer (SvcTraceViewer.exe) te gebruiken om de logboekbestanden van berichten weer te geven. Zie Service Trace Viewer gebruiken voor het weergeven van gecorreleerde traceringen en probleemoplossing voor meer informatie over het gebruik van dit hulpprogramma.

In de Service Trace Viewer worden berichten weergegeven op het tabblad Bericht . Berichten die zijn veroorzaakt of zijn gerelateerd aan, worden een verwerkingsfout gemarkeerd in geel (waarschuwingsniveau) of rood (foutniveau), afhankelijk van de ernst van de fout. Als u dubbelklikt op het bericht, wordt de berichttracering weergegeven in de context van de verwerkingsaanvraag.

Opmerking

Als een bericht geen koptekst heeft, wordt er geen <header/> tag geregistreerd.

Berichten weergeven die zijn vastgelegd door een client, een relay en een service

Uw omgeving kan een client bevatten, die een bericht verzendt naar een relay, die het bericht vervolgens doorstuurt naar de service. Wanneer logboekregistratie van berichten is ingeschakeld op alle drie de locaties en alle drie de berichtenlogboeken tegelijkertijd worden weergegeven in het hulpprogramma Service Trace Viewer (SvcTraceViewer.exe), worden de berichtenlogboekuitwisselingen onjuist weergegeven. Dit komt doordat de CorrelationId en ActivityId in de berichtkop niet uniek zijn voor elk verzend-ontvangstpaar.

U kunt een van de volgende methoden gebruiken om dit probleem op te lossen.

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

Uitzonderlijke gevallen van onnauwkeurigheid bij berichtregistratie-inhoud

Onder de volgende omstandigheden zijn berichten die worden geregistreerd mogelijk niet de exacte weergave van de octetstroom die aanwezig is in de verbinding.

  • Voor BasicHttpBinding worden envelopkoppen vastgelegd voor de binnenkomende berichten in de naamruimte /adressering/geen.

  • Witruimten kunnen niet overeenkomen.

  • Voor binnenkomende berichten kunnen lege elementen anders worden weergegeven. Bijvoorbeeld <tag></tag> in plaats van <tag/>

  • Wanneer de registratie van bekende PII is uitgeschakeld, hetzij standaard of via een expliciete instelling, moet enableLoggingKnownPii="true" worden ingesteld.

  • Codering is ingeschakeld voor transformatie naar UTF-8.

Zie ook