Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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.
Megjegyzé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 Service Trace Viewer 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 true forrásban kell beállítaniSystem.ServiceModel. 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ó.
Megjegyzé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
Amikor a ActivityTracing ki van kapcsolva a System.ServiceModel nyomkövetési forrásban, létrejön egy nyomkövetési fájl, amely csak a felhasználó által definiált tevékenység nyomkövetéseit tartalmazza, és nem tartalmazza a ServiceModel tevékenység nyomkövetéseit. 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 One-Time 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 Windows Communication Foundation-mintákcímű témakör utasításait.
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.