Dela via


Utöka spårning

Exemplet ExtendingTracing visar hur du utökar spårningsfunktionen för Windows Communication Foundation (WCF) genom att skriva användardefinierade aktivitetsspårningar i klient- och tjänstkod. Genom att skriva användardefinierade aktivitetsspårningar kan användaren skapa spårningsaktiviteter och gruppera spårningar i logiska arbetsenheter. Det är också möjligt att korrelera aktiviteter via överföringar (inom samma slutpunkt) och spridning (mellan slutpunkter). I det här exemplet är spårning aktiverat för både klienten och tjänsten. Mer information om hur du aktiverar spårning i klient- och tjänstkonfigurationsfiler finns i Spårning och Meddelandeloggning.

Det här exemplet baseras på Komma igång.

Kommentar

Konfigurationsproceduren och bygginstruktionerna för det här exemplet finns i slutet av det här avsnittet.

Spårning och aktivitetsspridning

Med användardefinierad aktivitetsspårning kan användaren skapa egna spårningsaktiviteter för att gruppera spårningar i logiska arbetsenheter, korrelera aktiviteter genom överföringar och spridning och minska prestandakostnaden för WCF-spårning (till exempel diskutrymmeskostnaden för en loggfil).

Lägga till anpassade källor

Användardefinierade spårningar kan läggas till i både klient- och tjänstkoden. Genom att lägga till spårningskällor i klient- eller tjänstkonfigurationsfilerna kan dessa anpassade spårningar registreras och visas i tjänstspårningsvisningsverktyget (SvcTraceViewer.exe). Följande kod visar hur du lägger till en användardefinierad spårningskälla med namnet ServerCalculatorTraceSource i konfigurationsfilen.

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

Korrelera aktiviteter

Om du vill korrelera aktiviteter direkt mellan slutpunkter propagateActivity måste attributet anges till true i spårningskällan System.ServiceModel . Om du vill sprida spårningar utan att gå igenom WCF-aktiviteter måste ServiceModel Activity Tracing också stängas av. Detta visas i följande kodexempel.

Kommentar

Att stänga av ServiceModel-aktivitetsspårning är inte detsamma som att ha spårningsnivån, som anges av switchValue egenskapen, inställd på av.

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">

    ...

       </source>
    </sources>
</system.diagnostics>

Minska prestandakostnaden

Inställningen ActivityTracing till av i System.ServiceModel spårningskällan genererar en spårningsfil som endast innehåller användardefinierade aktivitetsspårningar, utan någon av de ServiceModel-aktivitetsspårningar som ingår. Om du undantar ServiceModel-aktivitetsspårningar resulterar det i en mycket mindre loggfil. Möjligheten att korrelera WCF-bearbetningsspårningar går dock förlorad.

Konfigurera, skapa och köra exemplet

  1. Kontrollera att du har utfört engångsinstallationsproceduren för Windows Communication Foundation-exempel.

  2. Om du vill skapa C# eller Visual Basic .NET-versionen av lösningen följer du anvisningarna i Skapa Windows Communication Foundation-exempel.

  3. Om du vill köra exemplet i en konfiguration med en eller flera datorer följer du anvisningarna i Köra Windows Communication Foundation-exempel.

Se även