Tsiteerides kellegi teise juhendit: Tegelikus arendustöös käivita sündmus ja seejärel kutsu teine liides andmete sisestamiseks, kui töötlemisloogikas on erand, muutub varem sisestatud andmed rämpsandmeteks, Meie eesmärk on defineerida kogu meetod tehinguna ning TransactionScope klass pakub lihtsat meetodit, mis võimaldab sul tehinguga mitte suhelda. märgistada koodiplokk tehingus osalevaks. TransactionScope objekt loob tehingu ja seab tehingu Transaction klassi Current omaduseks.
1. TransactionScope'i eelised 1. Seda on mugavam kasutada. TransactionScope suudab rakendada kaudseid tehinguid, nii et saad kirjutada andmejuurdepääsu kihi koodi ilma tehinguid arvestamata, kuid kontrollida tehinguid ärikihil. 2. Jaotatud tehinguid saab rakendada, näiteks andmebaasideülene või MSMQ.
2. TransactionScope'i puudused 1. Kulutõhusus ei ole kõrge. Näiteks kontrollid ainult teegi tehinguid "Scope'is". "TransactionScope" kasutamine on veidi raiskav. 2. Tavatingimustes, kui kasutad "TransactionScope'i", pead seadistama MSDTC, paigaldama tulemüüri ja avama port 139. Seda porti ei saa muuta
3. Kui pead kasutama hajutatud tehinguid, pead selle üle mõtlema 1. Kas see operatsioon peab olema tehingus? Kui see samm jääb lõpetamata või ebaõnnestub, kas tasub kogu tehing tagasi pöörata? Kas puuduvad elegantsed kompensatsiooni- või rikketaluvuse mõõdikud? 2. Kui palju punkte hõlmavad hajutatud tehingud? Peab olema suur reaalajas operatsioonide jada? Kas mõnda punkti ei saa teavitustoimingutega sujuvamaks muuta? 3. Pärast hajutatud tehingu algatamist, kas tegite tehingust sõltumatuid operatsioone, kuigi need operatsioonid ei olnud tehingutega seotud? (nt andmete lugemine, arvutamine, kasutaja sõnumi ootamine, teiste moodulite kõne tagasituleku ootamine jne.) 4. Sa ei arvestanud tehingus mõningaid lugemistoiminguid, eks? See on lihtne viga, kui lisad tehingusse valitud operatsiooni. 5. Mõningaid teie operatsiooni samme saab täita pärast kõigi toimingute lõpetamist. Sellisel operatsioonil on ilmsed teavituse omadused. Teavitustoimingud ütlevad: ma annan sulle teate ja garanteerin, et teade jõuab sinuni; Te peate selle teate vastu võtma ja veenduma, et see töödeldakse, kuid te ei pea sellega tegelema kohe, kui ma teid teavitan. Seda operatsiooni saab ilmselgelt teha mõne teise ülesandega.
4. Pööra tähelepanu järgmistele punktidele hajutatud tehingute kasutamisel 1: Veendu, et tehingus osalev masin on lubanud hajutatud tehingute toe. 2: Kui masinal on tulemüür sisse lülitatud, pead määrama msdtc protsessi erandiks. 3: Tehingus osalev masin ei saa domeeni ületada (kui see on domeenideülene, siis Microsoftil praegu täpset lahendust ei ole); 4: Kasuta hajutatud tehinguid ainult siis, kui andmebaasid on mitmed, kui tegemist on sama andmebaasiga, on kõige parem kasutada SqlTransactioni. 1. Lisa esmalt System.Transactions viide (pead lisama Net assembly)
C# kutse kood on järgmine:
Blogide aadress, mis selgitab seda hajutatud tehinguklassi, on väga selge:http://www.cnblogs.com/artech/archive/2010/01/31/1660356.html
2. Sea veebiserveri ja SQL-serveri keskkonna konfiguratsioon
Juhtpaneel - > Süsteemid ja turvalisus - > Haldustööriistad - > Komponenditeenused (See on vajalik nii WEB kui SQL serverite puhul)
Juhtpaneel - > Süsteemid ja turvalisus - > haldustööriistad - > teenused
(See on vajalik nii WEB kui SQL serverite puhul)
Juhtpaneel – > Süsteem ja turvalisus – > Windowsi tulemüür
(See on vajalik nii WEB kui SQL serverite puhul)
3. MSSQL konfiguratsioon
Serveriühenduste jaoks paremklõps - > omadused
4. Seadista hostid (seadista ainult WEB server, kui mitte, siis seadista see ka SQL serveris)
C:\Windows\System32\drivers\etc hosts-faili, mis avatakse Notepadiga (SQL serveri info tuleb seadistada WEB-serveri Hosts-failis) (Kui test ebaõnnestub, seadista veebiserveri info SQL serveri Hosts failis)
|