Cituojant kažkieno vadovą: Atlikdami faktinį kūrimo darbą, vykdykite įvykį ir iškvieskite kitą sąsają, kad įterptumėte duomenis, jei apdorojimo logikoje yra išimtis, tada anksčiau įterpti duomenys taps nepageidaujamais duomenimis, Mes norime, kad galėtume apibrėžti visą metodą kaip operaciją, o TransactionScope klasė suteikia paprastą metodą, leidžiantį jums nebendrauti su pačia operacija. , kad kodo blokas būtų pažymėtas kaip dalyvaujantis operacijoje. Objektas TransactionScope sukuria operaciją ir nustato operacijos klasės ypatybę Current.
1. "TransactionScope" privalumai 1. Patogiau naudoti. "TransactionScope" gali įdiegti numanomas operacijas, kad galėtumėte rašyti duomenų prieigos lygmens kodą neatsižvelgdami į operacijas, bet valdyti operacijas verslo lygmenyje. 2. Galima įgyvendinti paskirstytus sandorius, pvz., kryžminę duomenų bazę arba MSMQ.
2. "TransactionScope" trūkumai 1. Išlaidų našumas nėra didelis. Pavyzdžiui, "Apimtyje" valdote tik bibliotekos operacijas. "TransactionScope" naudojimas yra šiek tiek švaistomas. 2. Įprastomis aplinkybėmis, kol naudojate "TransactionScope", turite sukonfigūruoti MSDTC, įdiegti ugniasienę ir atidaryti 139 prievadą. Šio prievado pakeisti negalima
3. Jei turite naudoti paskirstytas operacijas, turite apie tai pagalvoti 1. Ar ši operacija turi būti įtraukta į sandorį? Jei šis veiksmas nebaigtas arba nepavyksta, ar verta atšaukti visą operaciją? Ar nėra elegantiškų kompensavimo ar gedimų tolerancijos priemonių? 2. Kiek taškų apima paskirstytos operacijos? Turi turėti didelę operacijų realiuoju laiku eilutę? Ar negalite supaprastinti kai kurių punktų per pranešimų operacijas? 3. Ar inicijavę paskirstytą operaciją atlikote operacijas, nors šios operacijos nebuvo susijusios su sandoriais? (pvz., duomenų skaitymas, skaičiavimas, laukimas, kol vartotojas grąžins pranešimą, laukimas, kol sugrįš kitų modulių skambutis ir kt.) 4. Į operaciją neįskaičiavote kai kurių skaitymo operacijų, ar ne? Tai lengva klaida, kurią galima padaryti, kai į operaciją įtraukiate pasirinkimo operaciją. 5. Kai kuriuos operacijos veiksmus galima atlikti atlikus visas operacijas. Šio tipo operacijos turi akivaizdžias pranešimo charakteristikas. Pranešimų operacijos sako, kad aš jums pateikiu pranešimą ir garantuoju, kad pranešimas jus pasieks; Turite priimti šį pranešimą ir užtikrinti, kad jis būtų apdorotas, tačiau jums nereikia su juo susitvarkyti, kai tik jums pranešiu. Šią operaciją akivaizdžiai galima atlikti atliekant kitą užduotį.
4. Naudodami paskirstytas operacijas atkreipkite dėmesį į šiuos dalykus 1: Įsitikinkite, kad operacijoje dalyvaujantis įrenginys įjungė paskirstytų operacijų palaikymą. 2: Jei įrenginyje įjungta ugniasienė, msdtc procesą turite nustatyti kaip išimtį. 3: Operacijoje dalyvaujantis įrenginys negali kirsti domeno (jei jis yra kryžminis domenas, "Microsoft" šiuo metu neturi tikslaus sprendimo); 4: Naudokite paskirstytas operacijas tik tada, kai turite kelias duomenų bazes, jei tai ta pati duomenų bazė, geriausia naudoti SqlTransaction. 1. Pirmiausia pridėkite System.Transactions nuorodą (turite pridėti tinklo asamblėją)
C# skambučio kodas yra toks:
Dienoraščių, paaiškinančių šią paskirstytą operacijų klasę, adresas yra labai aiškus:http://www.cnblogs.com/artech/archive/2010/01/31/1660356.html
2. Nustatykite žiniatinklio serverio ir SQL serverio aplinkos konfigūraciją
Valdymo skydelis - > Sistemos ir sauga - > valdymo įrankiai - > komponentų paslaugos (Tai reikalinga tiek WEB ir SQL serveriams)
Valdymo skydelis - > Sistemos ir sauga - > valdymo įrankiai - > Paslaugos
(Tai reikalinga tiek WEB ir SQL serveriams)
Valdymo skydas - > Sistema ir sauga - > "Windows" užkarda
(Tai reikalinga tiek WEB ir SQL serveriams)
3. MSSQL konfigūracija
Jei norite prisijungti prie serverio, dešiniuoju pelės mygtuku spustelėkite > ypatybes
4. Konfigūruokite pagrindinius kompiuterius (konfigūruokite tik WEB serverį, jei ne, taip pat sukonfigūruokite jį SQL serveryje)
C:\Windows\System32\drivers\etc pagrindinio kompiuterio failą, kuris atidaromas naudojant Notepad (SQL serverio informacija turi būti sukonfigūruota WEB serverio faile Hosts) (Jei bandymas nepavyksta, sukonfigūruokite žiniatinklio serverio informaciją SQL serverio faile Hosts)
|