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