Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Toto téma popisuje, jak můžete zobrazit protokoly zpráv.
Zobrazení protokolů zpráv v Prohlížeči trasování Služby
Zpráva bude transformována při zpracování pomocí WCF. Zpráva, která se protokoluje, proto odráží pouze obsah zprávy v okamžiku, kdy byla zaznamenána, nikoli obsah v drátě.
Vzhledem k tomu, že výstup protokolování zpráv nemá žádný vztah k formátu přenosu zprávy, protokolování zpráv vždy vypíše dekódovanou zprávu. Pokud jste správně nakonfigurovali protokolování zpráv, měly by být všechny protokolované zprávy ve formátu prostého textu. Například formát (prostý text) protokolovaných zpráv není ovlivněn použitím binárního kodéru zpráv.
Výstup XmlWriterTraceListener je soubor, který obsahuje posloupnost fragmentů XML. Měli byste vědět, že soubor není platným souborem XML. K zobrazení souborů protokolu zpráv se doporučuje použít nástroj Service Trace Viewer (SvcTraceViewer.exe). Další informace o tom, jak tento nástroj používat, najdete v tématu Použití Service Trace Viewer pro zobrazení korelovaných stop a řešení potíží.
V Prohlížeči trasování služby jsou zprávy uvedeny na kartě Zpráva. Zprávy, které způsobily chybu zpracování nebo s ní souvisí, jsou zvýrazněny žlutě (úroveň upozornění) nebo červeně (úroveň chyby) podle závažnosti chyby. Poklikáním na zprávu se zobrazí trasování zprávy v kontextu žádosti o zpracování.
Poznámka:
Pokud zpráva neobsahuje žádné záhlaví, není zaprotokolována žádná <header/> značka.
Zobrazení zpráv zaznamenaných klientem, relé a službou
Vaše prostředí může obsahovat klienta, který odešle zprávu předávací službě, která následně zprávu přepošle službě. Pokud je protokolování zpráv povolené na všech třech místech a všechny tři protokoly zpráv se zobrazí v nástroji Service Trace Viewer (SvcTraceViewer.exe) současně, výměny protokolu zpráv se nesprávně vykreslují. Důvodem je, že CorrelationId a ActivityId v záhlaví zprávy nejsou jedinečné pro každý pár odeslání-přijetí.
K vyřešení tohoto problému můžete použít některou z následujících metod.
V nástroji Service Trace Viewer (SvcTraceViewer.exe) můžete kdykoli zobrazit pouze dva ze tří protokolů zpráv.
Pokud musíte současně zobrazit všechny tři protokoly v nástroji Service Trace Viewer (SvcTraceViewer.exe), můžete službu předávání upravit vytvořením nové Message instance. Tato instance by měla být kopií těla příchozí zprávy, plus všechna záhlaví kromě záhlaví `
ActivityId` a `Action`. Následující příklad kódu ukazuje, jak to provést.
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);
}
Výjimečné případy nepřesného obsahu protokolování zpráv
Za následujících podmínek nemusí být zprávy přesným zobrazením octetového streamu, který prochází síťovým připojením.
V případě BasicHttpBinding se hlavičky obálky pro příchozí zprávy zaznamenávají v oboru názvů /addressing/none.
Prázdné znaky můžou být neshodné.
U příchozích zpráv mohou být prázdné prvky reprezentovány odlišně. Například <tag></tag> místo <tag/>
Pokud je ve výchozím nastavení zakázáno protokolování známých PII, povolte jej pomocí explicitního nastavení enableLoggingKnownPii="true".
Kódování je povoleno pro transformaci na UTF-8.