Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 25464|Válasz: 0

[Forrás] .net/C# Distributed TransactionScope

[Linket másol]
Közzétéve 2018. 05. 05. 10:53:17 | | | |
Más útmutatóját idézve:
A tényleges fejlesztési munkában végrehajtsunk egy eseményt, majd hívjunk egy másik interfészt adat beillesztésére. Ha kivétel van a feldolgozási logikában, akkor a korábban beillesztett adatok hulladék adatmá válnak,
Amit szeretnénk, az az, hogy az egész metódusot tranzakcióként definiálhassuk, és a TransactionScope osztály egy egyszerű módszert biztosít, amely lehetővé teszi, hogy ne kelljen magával a tranzakcióval interakcióba lépni.
hogy egy kódblokkot a tranzakcióban részt vevőként jelöljék. A TransactionScope objektum létrehoz egy tranzakciót, és a tranzakciót a Transaction osztály aktuális tulajdonságához állítja be.

1. A TransactionScope előnyei
1. Kényelmesebb használni. A TransactionScope képes implicit tranzakciókat valósítani meg, így írhatsz adathozzáférési réteg kódot tranzakciók figyelembevétele nélkül, de az üzleti rétegen irányíthatod a tranzakciókat.
2. Megvalósíthatók elosztott tranzakciók, például az adatbázisok közötti vagy MSMQ-k.

2. A TransactionScope hátrányai
1. A költséghatékonyság nem magas. Például csak a könyvtár tranzakcióit irányítod a "Scope"-ban. A "TransactionScope" használata kissé pazarlás.
2. Normál körülmények között, amíg a "TransactionScope" funkciót használod, konfigurálni kell az MSDTC-t, tűzfalat telepíteni, és megnyitni a 139-es portot. Ez a port nem változtatható

3. Ha elosztott tranzakciókat kell használnod, gondolkodnod kell rajta
1. Kötelezően benne kell lennie az ügyletben? Ha ez a lépés nem fejeződik be vagy nem sikerül, megéri visszafordítani az egész tranzakciót? Nincsenek elegáns kompenzációs vagy hibatűrési mutatók?
2. Hány pontot foglalnak el a szétosztott tranzakciók? Biztosan nagy sorozat valós idejű műveletet kell tartalmaznia? Nem tudsz néhány pontot egyszerűsíteni értesítési műveletekkel?
3. Egy elosztott tranzakció indítása után végrehajtottál-e tranzakciófüggetlen műveleteket, még akkor is, ha ezek nem tranzakciókhoz kapcsolódnak? (pl. adatolvasás, számítás, a felhasználó üzenetének visszaküldése, más modulok hívásának visszahívásának megvárása stb.)
4. Nem számoltál néhány olvasási műveletet az ügyletben, ugye? Ez egy könnyű hiba, amikor egy kiválasztott műveletet bevonsz a tranzakcióba.
5. A művelet egyes lépései végrehajtásra kerülhetnek, miután minden művelet befejeződött. Ez a típusú művelet nyilvánvaló értesítési jellemzőkkel bír. Az értesítési műveletek azt mondják: adok értesítést, és garantálom, hogy az értesítés eléri önt;
Ezt a értesítést fel kell venned, és biztosítani kell, hogy feldolgozzák, de nem kell azonnal foglalkoznod vele, amint értesítem. Ez a művelet természetesen más feladattal is elvégezhető.

4. Figyelj a következő pontokra elosztott tranzakciók használatakor
1: Győződj meg róla, hogy a tranzakcióban részt vevő gép engedélyezte a elosztott tranzakciós támogatást.
2: Ha a gépen be van kapcsolva a tűzfal, akkor az msdtc folyamatot kivételként kell beállítani.
3: A tranzakcióban részt vevő gép nem lépheti át a domaint (ha ez a tartományok közötti terület, a Microsoftnak jelenleg nincs pontos megoldása);
4: Használj elosztott tranzakciókat csak akkor használ, ha több adatbázisod van, ha ugyanaz az adatbázis, akkor a legjobb a SqlTransaction-t használni.
1. Először add hozzá a System.Transactions hivatkozását (a Net assembly is hozzá kell adnod)

A C# hívás kódja a következő:

A blogok címe, amelyek ezt a elosztott tranzakcióosztályt magyarázzák, nagyon világos:http://www.cnblogs.com/artech/archive/2010/01/31/1660356.html

2. Állítsd be a webszerver és SQL szerver környezet konfigurációját

Vezérlőpanel - > Rendszerek és Biztonság - > Menedzsment Eszközök - > Komponens Szolgáltatások
(Ez mind WEB, mind SQL szerverek esetén szükséges)





Vezérlőpanel - > Rendszerek és Biztonság - > Menedzsment Eszközök - > Szolgáltatások
(Ez mind WEB, mind SQL szerverek esetén szükséges)




Vezérlőpanel - > Rendszer és Biztonság - > Windows Tűzfal
(Ez mind WEB, mind SQL szerverek esetén szükséges)




3. MSSQL konfiguráció

Szerver kapcsolatokhoz jobb kattintással - > tulajdonságok




4. Konfiguráld a hószcsatornákat (csak a WEB szervert konfiguráld, ha nem, akkor az SQL szerveren is konfiguráld)

C:\Windows\System32\drivers\etc
hosts fájl, amelyet Notepaddal nyit meg
(Az SQL szerver adatait a WEB szerver Hosts fájljában kell konfigurálni)
(Ha a teszt sikertelen, konfiguráld a webszerver adatait a Hosts fájlban az SQL szerveren)






Előző:Külső hivatkozások a Discuz X fórumbejegyzésekhez hozzáadják a nofollow attribútumot
Következő:Függvények, amelyek két tizedesjegyet tartanak a C# tizedespontja után, és hogyan kell használni őket
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com