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.
Slechts twee van de drie berichtlogboeken weergeven in het hulpprogramma Service Trace Viewer (SvcTraceViewer.exe) op elk gewenst moment.
Als u alle drie de logboeken tegelijk in het hulpprogramma Service Trace Viewer (SvcTraceViewer.exe) moet weergeven, kunt u de Relay-service wijzigen door een nieuw Message exemplaar te maken. Dit exemplaar moet een kopie zijn van de hoofdtekst van het binnenkomende bericht, plus alle kopteksten, met uitzondering van de
ActivityId
enAction
kopteksten. In de volgende voorbeeldcode ziet u hoe u dit doet.
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.