Rozšíření trasování
Ukázka ExtendTracing ukazuje, jak rozšířit funkci trasování wcf (Windows Communication Foundation) zápisem trasování aktivity definované uživatelem v klientském a servisním kódu. Zápis trasování aktivit definovaných uživatelem umožňuje uživateli vytvářet aktivity trasování a seskupování do logických jednotek práce. Aktivity je také možné korelovat prostřednictvím přenosů (ve stejném koncovém bodu) a šíření (napříč koncovými body). V této ukázce je trasování povolené pro klienta i službu. Další informace o povolení trasování v konfiguračních souborech klienta a služby naleznete v tématu Trasování a Protokolování zpráv.
Tato ukázka je založená na začínáme.
Poznámka:
Postup nastavení a pokyny k sestavení pro tuto ukázku najdete na konci tohoto tématu.
Trasování a šíření aktivit
Trasování aktivit definované uživatelem umožňuje uživateli vytvořit vlastní aktivity trasování pro seskupení trasování do logických jednotek práce, korelaci aktivit prostřednictvím přenosů a šíření a snížení nákladů na výkon trasování WCF (například náklady na místo na disku souboru protokolu).
Přidání vlastních zdrojů
Trasování definované uživatelem lze přidat do kódu klienta i služby. Přidání zdrojů trasování do konfiguračních souborů klienta nebo služby umožňuje zaznamenání a zobrazení těchto vlastních trasování v nástroji Service Trace Viewer (SvcTraceViewer.exe). Následující kód ukazuje, jak do konfiguračního souboru přidat uživatelem definovaný zdroj ServerCalculatorTraceSource
trasování.
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="xml">
<filter type="" />
</add>
</listeners>
</source>
<source name="ServerCalculatorTraceSource" switchValue="Information,ActivityTracing">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="xml">
<filter type="" />
</add>
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\logs\ServerTraces.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="xml" traceOutputOptions="Callstack">
<filter type="" />
</add>
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
....
Korelace aktivit
Aby bylo možné korelovat aktivity přímo mezi koncovými body, propagateActivity
musí být atribut nastaven na true
System.ServiceModel
zdroj trasování. Pokud chcete trasování rozšířit bez procházení aktivit WCF, musí být trasování aktivity ServiceModel vypnuté. To je vidět v následujícím příkladu kódu.
Poznámka:
Vypnutí trasování aktivity ServiceModel není stejné jako úroveň trasování označená switchValue
vlastností, která je nastavena na vypnuto.
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
...
</source>
</sources>
</system.diagnostics>
Snížení nákladů na výkon
Nastavení ActivityTracing
na vypnuto ve System.ServiceModel
zdroji trasování vygeneruje trasovací soubor, který obsahuje pouze trasování aktivity definované uživatelem bez zahrnutí trasování aktivity ServiceModel. Vyloučení trasování aktivity ServiceModel vede k mnohem menšímu souboru protokolu. Příležitost ke korelaci trasování zpracování WCF je však ztracena.
Nastavení, sestavení a spuštění ukázky
Ujistěte se, že jste pro ukázky windows Communication Foundation provedli jednorázovou instalační proceduru.
Pokud chcete sestavit edici C# nebo Visual Basic .NET řešení, postupujte podle pokynů v části Sestavení ukázek windows Communication Foundation.
Pokud chcete spustit ukázku v konfiguraci s jedním nebo více počítači, postupujte podle pokynů v části Spuštění ukázek windows Communication Foundation.