Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
Anmärkning
Konfigurationsproceduren och bygginstruktionerna för det här exemplet finns i slutet av det här avsnittet.
Spårning och aktivitetspropagering
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 verktyget Tjänstspårningsvisare (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
För att korrelera aktiviteter direkt över slutpunkter måste attributet propagateActivity
anges till true
i System.ServiceModel
spårningskällan. 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.
Anmärkning
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
Kontrollera att du har utfört One-Time installationsproceduren för Windows Communication Foundation-exempel.
Om du vill skapa C# eller Visual Basic .NET-versionen av lösningen följer du anvisningarna i Skapa Windows Communication Foundation-exempel.
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.