Sdílet prostřednictvím


Trasování a protokolování zpráv

Ukázka Trasování a protokolování ukazuje, jak povolit trasování a protokolování zpráv. Výsledné trasování a protokoly zpráv se zobrazují pomocí nástroje Service Trace Viewer (SvcTraceViewer.exe). 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í

Windows Communication Foundation (WCF) používá mechanismus trasování definovaný v System.Diagnostics oboru názvů. V tomto modelu trasování se data trasování vytvářejí zdroji trasování, které aplikace implementují. Každý zdroj je identifikován názvem. Konzumenti trasování vytvářejí posluchače trasování pro zdroje trasování, ze kterých chtějí získat informace. Pokud chcete přijímat data trasování, musíte vytvořit posluchač pro zdroj trasování. Ve WCF to lze provést přidáním následujícího kódu do konfiguračního souboru služby nebo klienta nastavením zdroje switchValuetrasování modelu služby:

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

Další informace o zdrojích trasování najdete v části Zdroj trasování v tématu Konfigurace trasování .

Trasování a šíření aktivit

Při povolení ActivityTracing a nastavení propagateActivity na true ve zdrojích trasování system.ServiceModel pro klienta i službu poskytují korelaci trasování v rámci logických jednotek zpracování (aktivit), mezi aktivitami v rámci koncových bodů (prostřednictvím přenosů aktivit) a mezi aktivitami zahrnujícími více koncových bodů (prostřednictvím šíření ID aktivity).

Tyto tři mechanismy (aktivity, přenosy a šíření) vám můžou pomoct rychleji najít původní příčinu chyby pomocí nástroje Service Trace Viewer. Další informace najdete v tématu Používání Prohlížeče trasování služby pro zobrazení korelovaných tras a řešení potíží.

Trasování, které poskytuje ServiceModel, je možné rozšířit vytvořením trasování aktivit definovaných uživatelem. Trasování aktivit definovaných uživatelem umožňuje uživateli vytvářet trasovací aktivity pro:

  • Seskupte stopy do logických jednotek práce.

  • Korelují aktivity prostřednictvím přenosů a šíření.

  • Snižte náklady na výkon trasování WCF (například náklady na diskový prostor pro soubor protokolu).

Další informace o trasování aktivity definované uživatelem najdete v ukázce Rozšíření trasování.

Protokolování zpráv

Protokolování zpráv lze povolit v klientovi i službě libovolné aplikace WCF. Pokud chcete povolit protokolování zpráv, musíte do klienta nebo služby přidat následující kód:

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

Když je zpráva zaznamenána, typ trasování závisí na tom, zda je trasování prováděno na straně klienta nebo serveru. Například zpráva "Přidat", která je odeslána klientovi, je trasována v kategorii TransportWrite v klientovi, zatímco stejná zpráva je trasována v kategorii TransportRead ve službě.

Posluchač trasování nakonfigurujte přidáním následujícího kódu do části System.Diagnostics souboru klienta App.config nebo souboru služby Web.config:

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

Zprávy jsou protokolovány ve formátu XML v cílovém adresáři zadaném v konfiguračním souboru.

Poznámka:

Trasovací soubory se nevytvořily bez počátečního vytvoření adresáře protokolu. Ujistěte se, že adresář C:\logs\ existuje, nebo v konfiguraci naslouchacího procesu zadejte alternativní adresář protokolování. Další informace najdete v úvodních pokynech k nastavení na konci tohoto dokumentu.

Další informace o protokolování zpráv naleznete v tématu Konfigurace protokolování zpráv .

Jak nastavit, sestavit a spustit ukázku

  1. Ujistěte se, že jste provedli instalační proceduru One-Time pro ukázky Windows Communication Foundation.

  2. Před spuštěním ukázky trasování a protokolování zpráv vytvořte adresář C:\logs\ pro službu pro zápis souborů .svclog do. Název tohoto adresáře je definován v konfiguračním souboru jako cesta pro trasování a zprávy, které se mají protokolovat a lze je změnit. Dejte uživatelské síťové službě přístup k zápisu do adresáře protokolů.

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

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