Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A nyomkövetések az alkalmazás végrehajtása során létrehozott bizonyos üzenetek közzétételét képezik. Nyomkövetés használatakor rendelkeznie kell egy mechanizmussal az elküldött üzenetek gyűjtésére és rögzítésére. A nyomkövetési üzeneteket a figyelők fogadják. A figyelő célja a nyomkövetési üzenetek gyűjtése, tárolása és átirányítása. A figyelők a nyomkövetési kimenetet egy megfelelő célhoz, például naplóhoz, ablakhoz vagy szövegfájlhoz irányítják.
Az egyik ilyen figyelő, a DefaultTraceListener, automatikusan létrejön és inicializálódik, ha engedélyezve van a nyomkövetés. Ha azt szeretné, hogy a nyomkövetési kimenet bármely további forráshoz legyen irányítva, további nyomkövetési figyelőket kell létrehoznia és inicializálnia. A létrehozott figyelőknek tükrözniük kell a te egyéni igényeidet. Előfordulhat például, hogy az összes nyomkövetési kimenet szöveges rekordját szeretné. Ebben az esetben létrehozhat egy figyelőt, amely minden kimenetet egy új szövegfájlba írt, ha engedélyezve van. Előfordulhat azonban, hogy csak az alkalmazás végrehajtása során szeretné megtekinteni a kimenetet. Ebben az esetben létrehozhat egy figyelőt, amely az összes kimenetet egy konzolablakba irányította. A EventLogTraceListener nyomkövetési kimenet egy eseménynaplóba irányítható, a nyomkövetési TextWriterTraceListener kimenet pedig egy streambe írható.
Nyomkövetés engedélyezése
A nyomkövetések tranzakciófeldolgozás során történő engedélyezéséhez szerkesztenie kell az alkalmazás konfigurációs fájlját. Az alábbiakban egy példa látható.
<configuration>
<system.diagnostics>
<sources>
<source name="System.Transactions" switchValue="Warning">
<listeners>
<add name="tx"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData= "tx.log" />
</listeners>
</source>
</sources>
</system.diagnostics>
</configuration>
System.Transactions A nyomkövetések a "System.Transactions" nevű forrásra lesznek írva. A add eszközt használhatja a nyomkövetési figyelő nevének és típusának meghatározására. A példakonfigurációban a figyelőt "tx"-nek neveztük el, és hozzáadtuk a szabványos .NET-keretrendszer nyomkövetési figyelőt (XmlWriterTraceListener) a használni kívánt típushoz. A figyelő naplófájljának nevének beállítására használható initializeData . Emellett egy teljesen minősített elérési utat is helyettesíthet egy egyszerű fájlnévvel.
Minden nyomkövetési üzenettípushoz hozzá van rendelve egy szint, amely jelzi a fontossági fokát. Ha az alkalmazástartomány nyomkövetési szintje egyenlő vagy alacsonyabb, mint egy eseménytípus szintje, akkor az üzenet létrejön. A nyomkövetési szintet a switchValue konfigurációs fájl beállításai vezérlik. A diagnosztikai nyomkövetési üzenetekhez társított szinteket az alábbi táblázat határozza meg.
| Nyomkövetési szint | Leírás |
|---|---|
| Nélkülözhetetlen | Súlyos hibák, például a következők történtek: – Olyan hiba, amely a felhasználói funkciók azonnali elvesztését okozhatja. – Olyan esemény, amely megköveteli, hogy a rendszergazda lépéseket tegyen a funkcióvesztés elkerülése érdekében. - A kód lefagy. - Ez a nyomkövetési szint elegendő kontextust biztosíthat más kritikus nyomkövetések értelmezéséhez is. Ez segíthet azonosítani a súlyos meghibásodáshoz vezető műveletek sorozatát. |
| Hiba | Hiba (például érvénytelen konfiguráció vagy hálózati viselkedés) történt, amely a felhasználói funkciók elvesztését okozhatja. |
| Figyelmeztetés | Létezik olyan feltétel, amely később hibát vagy kritikus hibát eredményezhet (például foglalási hiba vagy egy korlát közeledése). A felhasználói kód hibáinak normál feldolgozása (például tranzakció megszakítva, időtúllépés, sikertelen hitelesítés) szintén figyelmeztetést eredményezhet. |
| Információ | A rendszerállapot monitorozásához és diagnosztizáléséhez, a teljesítmény méréséhez vagy a profilkészítéshez hasznos üzenetek jönnek létre. Ezek közé tartozhatnak a tranzakciós és a beléptetési élettartam eseményei, például a létrehozott vagy véglegesített tranzakciók, a jelentős határ átlépése vagy a jelentős erőforrások lefoglalása. A fejlesztő ezután felhasználhatja ezeket az információkat a kapacitástervezéshez és a teljesítménykezeléshez. |
Nyomkövetési kódok
Az alábbi táblázat az infrastruktúra által létrehozott nyomkövetési System.Transactions kódokat sorolja fel. A táblázat tartalmazza a nyomkövetési kód azonosítóját, a EventType nyomkövetés enumerálási szintjét és a nyomkövetéshez TraceRecord tartozó további adatokat. Emellett a nyomkövetés megfelelő nyomkövetési szintje is a TraceRecordban van tárolva.
| TraceCode | Eseménytípus | További adatok a TraceRecordban |
|---|---|---|
| TransactionCreated | Információ | TranzakcióKövetésAzonosító |
| Tranzakció Előléptetve | Információ | Helyi tranzakció-nyomkövetési azonosító, Elosztott tranzakció-nyomkövetési azonosító |
| KijelölésLétrehozva | Információ | TransactionTraceId, EnlistmentTraceId, FoglalásTípusa (tartós/illékony), FoglalásiOpciók |
| BesorakozásVisszahívásNegatív | Figyelmeztetés | TransactionTraceId, EnlistmentTraceId. Visszahívás (kényszerített visszaállítás/sikertelenek/kétséges állapot) |
| TranzakcióVisszalépésMeghívva | Figyelmeztetés | TranzakcióKövetésAzonosító |
| Tranzakciómegszakítva | Figyelmeztetés | TranzakcióKövetésAzonosító |
| TransactionInDoubt | Figyelmeztetés | TranzakcióKövetésAzonosító |
| TransactionScopeCreated | Információ | TransactionScopeResult, amely a következő lehet: - Új tranzakció. - Tranzakció sikeres. - Függő tranzakció jóváhagyva. - Az aktuális tranzakció használata. - Nincs tranzakció. új aktuális TransactionTraceId |
| TransactionScopeDisposed | Információ | A hatókör "várt" aktuális tranzakciójának TransactionTraceId azonosítója. |
| TranzakcióhatókörThisányos | Figyelmeztetés | A hatókör "várt" aktuális tranzakciójának TransactionTraceId azonosítója. |
| Hibás tranzakcióhatókör beágyazás | Figyelmeztetés | A hatókör "várt" aktuális tranzakciójának TransactionTraceId azonosítója. |
| TransakcióKörnyezetiAktuálisTranzakcióMegváltozott | Figyelmeztetés | Régi aktuális TransactionTraceId, egyéb TransactionTraceId |
| TransactionScopeTimeout | Figyelmeztetés | A hatókör "várt" aktuális tranzakciójának TransactionTraceId azonosítója. |
| FüggőMásolatLétrehozva | Információ | TransactionTraceId, a létrehozott függő tranzakció típusa (RollbackIfNotComplete/BlockCommitUntilComplete) |
| FüggőMásolatKész | Információ | TranzakcióKövetésAzonosító |
| HelyreállításKész | Információ | Erőforrás-kezelő GUID (alapértelmezettből) |
| Újralistás | Információ | Erőforrás-kezelő GUID (alapértelmezettből) |
| TranzakcióSorosítva | Információ | TranzakcióKövetésiAzonosító. |
| TransactionException | Hiba | Kivételüzenet |
| Érvénytelen műveletkivétel | Hiba | Kivételüzenet |
| Belső hiba | Nélkülözhetetlen | Kivételüzenet |
| TransferEvent | Ha egy tranzakció deszerializálódik, vagy egy System.Transactions tranzakcióból elosztottá léptetik, az ExecutionContext aktuális tevékenységazonosítója és az elosztott tranzakció azonosítója íródik. Amikor a DTC visszahívja a felügyelt kódot, az elosztott tranzakcióazonosító a ExecutionContext tevékenységazonosítójaként van beállítva a visszahívás időtartamára. |
|
| BeállítottAlapértelmezettIdőtúllépésKorrigált | Figyelmeztetés | Nincs extra adat |
| Tranzakciós időkorlát | Figyelmeztetés | Az időkorlátot elérő tranzakció TransactionTraceId azonosítója. |
A fenti további adatelemek XML-sémája a következő formátumú.
TranzakcióNyomkövetésiAzonosító
<TransactionTraceIdentifier>
<TransactionIdentifier >
string representation of transaction id
</TransactionIdentifier>
< CloneIdentifier >
the clone id number
</CloneIdentifier>
</TransactionTraceIdentifier>
Azonosító nyomkövető csatlakozás
<EnlistmentTraceIdentifier>
<ResourceManagerId>
string form of guid
</ResourceManagerId>
<TransactionTraceIdentifier>
<TransactionIdentifier >
string representation of transaction id
</TransactionIdentifier>
<CloneIdentifier >
the clone id number
</CloneIdentifier>
<TransactionTraceIdentifier>
<EnlistmentIdentifier>
the enlistment id number
</EnlistmentIdentifier>
</EnlistmentTraceIdentifier>
Resource Manager-azonosító
<ResourceManagerId>
string form of guid
</ResourceManagerId>
Biztonsági problémák a nyomkövetéshez
Amikor Ön rendszergazdaként bekapcsolja a nyomkövetést, előfordulhat, hogy a bizalmas adatok egy olyan nyomkövetési naplóba kerülnek, amely alapértelmezés szerint nyilvánosan megtekinthető. Az esetleges biztonsági fenyegetések elkerülése érdekében érdemes lehet a nyomkövetési naplót a megosztási és fájlrendszer-hozzáférési engedélyek által szabályozott biztonságos helyen tárolni.