Megosztás:


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 tool (SvcTraceViewer.exe) használatával tekinthetők meg. Ez a minta az első lépéseken alapul.

Megjegyzé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 System.Diagnostics névtérben definiált nyomkövetési mechanizmust 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. Nyomkövetési adatokat fogadni csak akkor lehet, ha létrehoz 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

Ha ActivityTracing engedélyezve van és propagateActivity be van állítva true, akkor az system.ServiceModel nyomkövetési források a kliens és a szolgáltatás esetében lehetővé teszik a nyomkövetések korrelációját a feldolgozási logikai egységeken (tevékenységeken), a tevékenységek között a végpontokon belül (tevékenységátvitelekkel), valamint az egymással összefüggő tevékenységek között, amelyek több végpontot érintenek (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.

Megjegyzé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 példa beállítása, elkészítése és futtatása

  1. Győződjön meg arról, hogy elvégezte a Windows Communication Foundation-minták One-Time 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