Sdílet prostřednictvím


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 trueSystem.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

  1. Ujistěte se, že jste pro ukázky windows Communication Foundation provedli jednorázovou instalační proceduru.

  2. Pokud chcete sestavit edici C# nebo Visual Basic .NET řešení, postupujte podle pokynů v části Sestavení ukázek windows Communication Foundation.

  3. 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.

Viz také