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