Delen via


Berichtlogboeken weergeven

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 is raadzaam 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 servicetraceringsviewer worden berichten weergegeven op het tabblad Bericht . Berichten die zijn veroorzaakt of zijn gerelateerd, 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.

Notitie

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 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 voor onnauwkeurige inhoud voor berichtregistratie

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

  • 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 bekende PII-logboekregistratie standaard is uitgeschakeld of expliciete instelling enableLoggingKnownPii="true".

  • Codering is ingeschakeld voor transformatie naar UTF-8.

Zie ook