Dela via


Spårning och meddelandeloggning

Exemplet TracingAndLogging visar hur du aktiverar spårning och meddelandeloggning. De resulterande spårningarna och meddelandeloggarna visas med hjälp av verktyget Service Trace Viewer (SvcTraceViewer.exe). Det här exemplet baseras på Komma igång.

Kommentar

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

Spårning

Windows Communication Foundation (WCF) använder spårningsmekanismen System.Diagnostics som definierats i namnområdet. I den här spårningsmodellen skapas spårningsdata av spårningskällor som program implementerar. Varje källa identifieras med ett namn. Spårningskonsumenter skapar spårningslyssnare för de spårningskällor som de vill hämta information för. Om du vill ta emot spårningsdata måste du skapa en lyssnare för spårningskällan. I WCF kan du göra detta genom att lägga till följande kod i antingen tjänstens eller klientens konfigurationsfil genom att ange tjänstmodellspårningskällan switchValue:

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel" switchValue="Information,ActivityTracing"
        propagateActivity="true">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add initializeData="C:\logs\TracingAndLogging-service.svclog" type="System.Diagnostics.XmlWriterTraceListener"
        name="xml" />
    </sharedListeners>
    <trace autoflush="true" />
</system.diagnostics>

Mer information om spårningskällor finns i avsnittet Spårningskälla i avsnittet Konfigurera spårning .

Aktivitetsspårning och spridning

Att ha ActivityTracing aktiverat och propagateActivity angett till true i system.ServiceModel spårningskällorna för både klienten och tjänsten ger korrelation av spårningar inom logiska enheter för bearbetning (aktiviteter), mellan aktiviteter inom slutpunkter (via aktivitetsöverföringar) och mellan aktiviteter som sträcker sig över flera slutpunkter (genom aktivitets-ID-spridning).

De här tre mekanismerna (aktiviteter, överföringar och spridning) kan hjälpa dig att hitta rotorsaken till ett fel snabbare med hjälp av verktyget Service Trace Viewer. Mer information finns i Använda tjänstspårningsvisaren för att visa korrelerade spårningar och felsökning.

Det är möjligt att utöka spårningen som tillhandahålls av ServiceModel genom att skapa användardefinierade aktivitetsspårningar. Med användardefinierad aktivitetsspårning kan användaren skapa spårningsaktiviteter för att:

  • Gruppera spårningar i logiska arbetsenheter.

  • Korrelera aktiviteter genom överföringar och spridning.

  • Minska prestandakostnaden för WCF-spårning (till exempel diskutrymmeskostnaden för en loggfil).

Mer information om användardefinierad aktivitetsspårning finns i exemplet utöka spårning.

Meddelandeloggning

Meddelandeloggning kan aktiveras både på klienten och tjänsten för alla WCF-program. Om du vill aktivera meddelandeloggning måste du lägga till följande kod i antingen klienten eller tjänsten:

<configuration>
  <system.serviceModel>
    <diagnostics>
      <!-- Enable Message Logging here. -->
      <!-- log all messages received or sent at the transport or service model levels -->
      <messageLogging logEntireMessage="true"
                      maxMessagesToLog="300"
                      logMessagesAtServiceLevel="true"
                      logMalformedMessages="true"
                      logMessagesAtTransportLevel="true" />
    </diagnostics>
  </system.serviceModel>
</configuration>

När ett meddelande registreras beror spårningstypen på om det spåras på klienten eller servern. Till exempel spåras ett "Lägg till"-meddelande som skickas till en klient under kategorin "TransportWrite" på klienten, medan samma meddelande spåras under kategorin "TransportRead" i tjänsten.

Konfigurera spårningslyssnaren genom att lägga till följande kod i System.Diagnostics avsnittet i klientens App.config-fil eller tjänstens Web.config-fil:

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel" switchValue="Information,ActivityTracing"
        propagateActivity="true">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add initializeData="C:\logs\TracingAndLogging-client.svclog" type="System.Diagnostics.XmlWriterTraceListener"
        name="xml" />
    </sharedListeners>
    <trace autoflush="true" />
  </system.diagnostics>

Meddelanden loggas i XML-format i målkatalogen som anges i konfigurationsfilen.

Kommentar

Spårningsfiler skapas inte utan att loggkatalogen skapas från början. Kontrollera att katalogen C:\logs\ finns eller ange en alternativ loggningskatalog i lyssnarkonfigurationen. Mer information finns i de inledande installationsanvisningarna i slutet av det här dokumentet.

Mer information om meddelandeloggning finns i avsnittet Konfigurera meddelandeloggning .

Så här konfigurerar du, skapar och kör exemplet

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

  2. Innan du kör exemplet spårning och meddelandeloggning skapar du katalogen C:\logs\ som tjänsten ska skriva .svclog-filerna till. Namnet på den här katalogen definieras i konfigurationsfilen som sökväg för spårningar och meddelanden som ska loggas och kan ändras. Ge användarens nätverkstjänst skrivåtkomst till loggkatalogen.

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

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