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


Nyomkövetés kiterjesztése

Az ExtendTracing-minta bemutatja, hogyan terjeszthető ki a Windows Communication Foundation (WCF) nyomkövetési funkciója a felhasználó által definiált tevékenység nyomkövetéseinek megírásával az ügyfél- és szolgáltatáskódban. A felhasználó által definiált tevékenységkövetések írásával a felhasználó nyomkövetési tevékenységeket hozhat létre, és logikai munkaegységekbe csoportosíthatja a nyomkövetéseket. A tevékenységeket átvitelekkel (ugyanazon végponton belül) és propagálással (végpontok között) is lehet korrelálni. Ebben a mintában a nyomkövetés engedélyezve van mind az ügyfél, mind a szolgáltatás számára. A nyomkövetés ügyfél- és szolgáltatáskonfigurációs fájlokban való engedélyezéséről további információt a Nyomkövetés és az Üzenetnaplózás című témakörben talál.

Ez a minta az első lépéseken alapul.

Feljegyzés

A minta beállí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 és tevékenység propagálása

A felhasználó által definiált tevékenységkövetés lehetővé teszi a felhasználó számára, hogy saját nyomkövetési tevékenységeket hozzon létre a nyomkövetések logikai munkaegységekbe való csoportosításához, a tevékenységek átvitelekkel és propagálással való korrelálásához, valamint a WCF-nyomkövetés teljesítményköltségének (például egy naplófájl lemezterületköltségének) csökkenéséhez.

Egyéni források hozzáadása

A felhasználó által definiált nyomkövetések az ügyfél- és szolgáltatáskódhoz is hozzáadhatók. Ha nyomkövetési forrásokat ad hozzá az ügyfél- vagy szolgáltatáskonfigurációs fájlokhoz, ezek az egyéni nyomkövetések rögzíthetők és megjeleníthetők a Szolgáltatáskövetés-megjelenítő eszközben (SvcTraceViewer.exe). Az alábbi kód bemutatja, hogyan vehet fel felhasználó által definiált nyomkövetési forrást ServerCalculatorTraceSource a konfigurációs fájlba.

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

Tevékenységek korrelációja

A tevékenységek végpontok közötti közvetlen összekapcsolásához az propagateActivity attribútumot a nyomkövetési System.ServiceModel forrásban kell beállítanitrue. A nyomkövetések WCF-tevékenységeken való áthaladás nélküli propagálásához a ServiceModel-tevékenység nyomkövetését is ki kell kapcsolni. Ez az alábbi kód példában látható.

Feljegyzés

A ServiceModel-tevékenység nyomkövetésének kikapcsolása nem ugyanaz, mint a nyomkövetési szint, amelyet a switchValue tulajdonság jelöl, és ki van kapcsolva.

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">

    ...

       </source>
    </sources>
</system.diagnostics>

Alacsonyabb teljesítményköltség

A nyomkövetési System.ServiceModel forrásban való kikapcsoláskor ActivityTracing létrejön egy nyomkövetési fájl, amely csak felhasználó által definiált tevékenység nyomkövetéseit tartalmazza, a ServiceModel-tevékenység nyomkövetései nélkül. A ServiceModel-tevékenység nyomkövetésének kizárása sokkal kisebb naplófájlt eredményez. A WCF-feldolgozási nyomkövetések korrelációjának lehetősége azonban elvész.

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 megoldás C# vagy Visual Basic .NET kiadásának létrehozásához kövesse a Windows Communication Foundation-minták készítéséhez szükséges utasításokat.

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