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 aktivit trasování definovaných uživatelem umožňuje uživateli vytvářet trasovací aktivity a seskupovat je do logických pracovních jednotek. 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ý trasovací zdroj nazvaný ServerCalculatorTraceSource.

<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 u koncových bodů, musí být atribut propagateActivity nastaven na true ve zdroji trasování System.ServiceModel. Pokud chcete také rozšířit trasování bez procházení aktivitami WCF, musí být trasování aktivit ServiceModel vypnuté. To je vidět v následujícím příkladu kódu.

Poznámka:

Vypnutí trasování aktivity ServiceModel není totéž jako mít úroveň trasování, určenou vlastností switchValue, nastavenou 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 provedli instalační proceduru One-Time pro ukázky Windows Communication Foundation.

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

  3. Pokud chcete spustit ukázku v konfiguraci s jedním počítačem nebo konfiguraci na více počítačích, postupujte podle pokynů v části Spouštění ukázek Windows Communication Foundation.

Viz také