Megosztás a következőn keresztül:


Nyomkövetés és üzenetnaplózás

A TracingAndLogging minta bemutatja, hogyan engedélyezheti a nyomkövetést és az üzenetek naplózását. Az eredményként kapott nyomkövetések és üzenetnaplók a Service Trace Viewer eszközzel (SvcTraceViewer.exe) tekinthetők meg. Ez a minta az első lépéseken alapul.

Feljegyzés

A minta telepítési eljárása és összeállítási utasításai a témakör végén találhatók.

Nyomkövetés

A Windows Communication Foundation (WCF) a névtérben definiált nyomkövetési mechanizmust System.Diagnostics használja. Ebben a nyomkövetési modellben a nyomkövetési adatokat az alkalmazások által implementált nyomkövetési források állítják elő. Az egyes forrásokat egy név azonosítja. A nyomkövetési felhasználók nyomkövetési figyelőket hoznak létre azokhoz a nyomkövetési forrásokhoz, amelyekhez információkat szeretnének lekérni. A nyomkövetési adatok fogadásához létre kell hoznia egy figyelőt a nyomkövetési forráshoz. A WCF-ben ezt úgy teheti meg, hogy hozzáadja a következő kódot a szolgáltatás vagy az ügyfél konfigurációs fájljába a szolgáltatásmodell nyomkövetési forrásának switchValuebeállításával:

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

A nyomkövetési forrásokról további információt a Nyomkövetés konfigurálása témakör Nyomkövetési forrás című szakaszában talál.

Tevékenység nyomon követése és propagálása

Az ActivityTracing ügyfél és a szolgáltatás nyomkövetési forrásainak engedélyezése és propagateActivity beállítása true lehetővé teszi a system.ServiceModel nyomkövetések korrelációját a feldolgozási logikai egységeken (tevékenységeken), a végpontokon belüli tevékenységek között (tevékenységátviteleken keresztül), valamint a több végpontot felölelő tevékenységek között (tevékenységazonosító propagálásával).

Ez a három mechanizmus (tevékenységek, átvitelek és propagálás) segíthet a hiba kiváltó okának gyorsabb megtalálásában a Service Trace Viewer eszközzel. További információ: A Service Trace Viewer használata a korrelált nyomkövetések és a hibaelhárítás megtekintéséhez.

A ServiceModel által biztosított nyomkövetést kiterjesztheti felhasználó által definiált tevékenységkövetések létrehozásával. A felhasználó által definiált tevékenységkövetés lehetővé teszi, hogy a felhasználó nyomkövetési tevékenységeket hozzon létre a következő módon:

  • A nyomkövetéseket logikai munkaegységekké csoportosítja.

  • Tevékenységek korrelálása átvitelekkel és propagálással.

  • Csökkenti a WCF-nyomkövetés teljesítményköltségét (például egy naplófájl lemezterület-költségét).

A felhasználó által definiált tevékenységkövetéssel kapcsolatos további információkért tekintse meg a Nyomkövetés kiterjesztése mintát.

Üzenetnaplózás

Az üzenetnaplózás bármely WCF-alkalmazás ügyfél- és szolgáltatásszolgáltatásában engedélyezhető. Az üzenetnaplózás engedélyezéséhez a következő kódot kell hozzáadnia az ügyfélhez vagy a szolgáltatáshoz:

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

Az üzenet rögzítésekor a nyomkövetés típusa attól függ, hogy az ügyfél vagy a kiszolgálón van-e nyomon követve. Az ügyfélnek küldött "Hozzáadás" üzenet például az ügyfél "TransportWrite" kategóriájában van nyomon követve, míg ugyanez az üzenet a szolgáltatás "TransportRead" kategóriájában van nyomon követve.

Konfigurálja a nyomkövetési figyelőt úgy, hogy hozzáadja a következő kódot az System.Diagnostics ügyfél App.config fájljának vagy a szolgáltatás Web.config fájljának szakaszához:

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

Az üzeneteket XML formátumban naplózza a rendszer a konfigurációs fájlban megadott célkönyvtárban.

Feljegyzés

A nyomkövetési fájlok nem jönnek létre a naplókönyvtár kezdeti létrehozása nélkül. Győződjön meg arról, hogy a C:\logs\ könyvtár létezik, vagy adjon meg egy másik naplózási könyvtárat a figyelő konfigurációjában. További információért tekintse meg a dokumentum végén található kezdeti telepítési utasításokat.

Az üzenetnaplózással kapcsolatos további információkért tekintse meg az Üzenetnaplózás konfigurálása témakört.

A minta beállítása, összeállítása és futtatása

  1. Győződjön meg arról, hogy elvégezte a Windows Communication Foundation-minták egyszeri beállítási eljárását.

  2. A nyomkövetési és üzenetnaplózási minta futtatása előtt hozza létre a szolgáltatás C:\logs\ könyvtárát a .svclog-fájlok írásához. A címtár neve a konfigurációs fájlban van definiálva a naplózandó nyomkövetések és üzenetek elérési útjaként, és módosítható. Adjon a felhasználó hálózati szolgáltatásnak írási hozzáférést a naplók könyvtárához.

  3. A megoldás C#, C++ vagy Visual Basic .NET kiadásának létrehozásához kövesse a Windows Communication Foundation-minták készítésének utasításait.

  4. Ha a mintát egy- vagy számítógépközi konfigurációban szeretné futtatni, kövesse a Windows Communication Foundation-minták futtatásával kapcsolatos utasításokat.

Lásd még