WCF – tracing a použití nástroje Service Trace Viewer


Při ladění komunikace klienta s WCF službou dochází k mnoha problémům a chybám, které jsou popisovány nicneříkajícími chybovými hláškami. Řešit tyto problémy běžným způsobem potom může být docela tvrdým oříškem a vzhledem k tomu, že jedna chyba může mít spoustu příčin, může to být časově dost náročný proces “pokus-omyl”.

Z toho důvodu je vhodné postupovat trošku systematičtěji a zjistit konkrétnější popis chyby a její příčiny. K tomu slouží diagnostické nástroje patřící k WCF.

Tracing – spuštění tracování

Pro zapnutí tracování je vhodné použít nástroj pro editaci konfiguračních souborů (Configuration Editor Tool – SvcConfigEditor.exe). Samozřejmě, je možné spustit tracování i ruční úpravou konfiguračního souboru.

Postup spouštění tracování:

  1. Otevřít konfigurační soubor pomocí SvcConfigEditoru.
  2. V levém sloupci si vybereme konfigurační sekci Diagnostics a na pravé straně se zobrazí různá nastavení pro diagnostiku WCF služby.
  3. V závislosti na tom, jaký druh informací chceme logovat zapneme tracování (Enable Tracing) a případně také logování zpráv (Enable MessageLogging). Kliknutím na vytvořené Listenery můžeme nastavit soubor, do kterého se má tracování zapisovat a také můžeme editovat způsob zaznamenávání.
    V tuto chvíli je tracování zapnuté a veškerá komunikace je zapisována do souborů s příponou .svclog. V těchto souborech jsou zapsané také chyby včetně typu chyby, chybové hlášky a všech dalších užitečných informací, které jsou jinak skryty.

    Problém je v tom,  že v tomto syrovém stavu (rozsáhlé XML) se zalogované informace nečtou moc příjemně, takže v tuto chvíli přichází na řadu nástroj Service Trace Viewer, který (jak už název napovídá) slouží právě k prohlížení těchto souborů.

    Service Trace Viewer

    Tento nástroj je možné nalézt ve stejné složce jako SvcConfigEditor, konkrétně se jedná o soubor SvcTraceViewer.exe. O tomto nástroji je možné nalézt bližší informace na MSDN – zde. Určitě se jedná o zajímavý nástroj, ale pokud chceme jen odhalit příčinu chyb, není vyloženě nutné znát všechny možnosti tohoto nástroje, protože jeho základní použití je velmi jednoduché.

    Chyby se hledají snadno – záznamy s chybou jsou zvýrazněny červeně. Uvnitř záznamu jsou chyby velmi dobře popsány. Prakticky ve stejném formátu, jako je možné prohlížet si informace o výjimkách ve Visual Studiu! Nejdůležitější ale je, že se jedná o výjimky, ze kterých se dá určit proč k problému došlo a dá se přijít na to, jak problém vyřešit. Rychle a elegantně.

    Závěr

    Pokud tedy chceme ladit komunikaci klientské aplikace s WCF službou, je dobré mít informace o tom, co se děje, proč se komunikace nedaří a hlavně jak případné problémy vyřešit. Já osobně už nedám na tracování a Service Trace Viewer dopustit a použitím těchto nástrojů jsem si ušetřil spoustu času a práce.

    Příklad: V mém případě šlo původně o chybovou hlášku: “An error occurred while receiving the HTTP response to..”, která je velice obecná. Z údajů získaných tracováním jsem se dozvěděl, že skutečný problém je vyjádřen hláškou: “Maximum request length exceeded.”. Najít řešení tohoto problému je potom snadné – například zde.

    Zdroje:

  • How to enable WCF tracing  – http://blogs.msdn.com/b/madhuponduru/archive/2006/05/18/601458.aspx
  • Service Trace Viewer Tool (SvcTraceViewer.exe) – http://msdn.microsoft.com/en-us/library/ms732023.aspx
  • Tracing and Message Logging – http://msdn.microsoft.com/en-us/library/ms751526.aspx

, , ,

Komentáře jsou uzavřeny.