Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 25464|Svare: 0

[Kilde] .net/C# Distribuert TransactionScope

[Kopier lenke]
Publisert på 05.05.2018 10:53:17 | | | |
For å sitere noen andres guide:
I faktisk utviklingsarbeid, kjør en hendelse, og kall deretter et annet grensesnitt for å sette inn data; hvis det er et unntak i behandlingslogikken, vil de tidligere innsatte dataene bli søppeldata,
Det vi ønsker, er å kunne definere hele metoden som en transaksjon, og TransactionScope-klassen gir en enkel metode som lar deg slippe å samhandle med selve transaksjonen.
å merke en kodeblokk som deltakende i en transaksjon. Objektet TransactionScope oppretter en transaksjon og setter transaksjonen til Current-egenskapen til Transaction-klassen.

1. Fordeler med TransactionScope
1. Det er mer praktisk å bruke. TransactionScope kan implementere implisitte transaksjoner, slik at du kan skrive datatilgang på lagets kode uten å ta hensyn til transaksjoner, men kontrollere transaksjoner på forretningslaget.
2. Distribuerte transaksjoner kan implementeres, som tverr-database eller MSMQ.

2. Ulemper med TransactionScope
1. Kostnadsytelsen er ikke høy. For eksempel kontrollerer du kun transaksjonene til et bibliotek i "Scope". Å bruke "TransactionScope" er litt sløsing.
2. Under normale omstendigheter, så lenge du bruker "TransactionScope", må du konfigurere MSDTC, installere en brannmur og åpne port 139. Denne porten kan ikke endres

3. Hvis du må bruke distribuerte transaksjoner, må du tenke på det
1. Må denne operasjonen være med i transaksjonen? Hvis dette steget ikke er fullført eller mislykkes, er det verdt å rulle tilbake hele transaksjonen? Finnes det ingen elegante kompensasjons- eller skyldtoleransetiltak?
2. Hvor mange punkter innebærer distribuerte transaksjoner? Må ha en lang rekke sanntidsoperasjoner? Kan du ikke effektivisere noen punkter gjennom varslingsoperasjoner?
3. Etter å ha initiert en distribuert transaksjon, utførte du transaksjonsuavhengige operasjoner, selv om disse operasjonene ikke var transaksjonsrelaterte? (f.eks. lese data, beregne, vente på at brukeren skal returnere en melding, vente på at andre moduler skal returnere anropet, osv.)
4. Du regnet vel ikke med noen leseoperasjoner i transaksjonen, gjorde du? Dette er en enkel feil å gjøre når du bruker en select-operasjon i transaksjonen.
5. Noen trinn i operasjonen din kan utføres etter at alle operasjoner er fullført. Denne typen operasjon har åpenbare varslingskarakteristikker. Varslingsoperasjoner sier: Jeg gir deg en varsling, og jeg garanterer at varslingen vil nå deg;
Du må ta imot dette varselet og sørge for at det blir behandlet, men du trenger ikke å håndtere det så snart jeg varsler deg. Denne operasjonen kan åpenbart utføres med en annen oppgave.

4. Vær oppmerksom på følgende punkter når du bruker distribuerte transaksjoner
1: Sørg for at maskinen som deltar i transaksjonen har aktivert distribuert transaksjonsstøtte.
2: Hvis maskinen har brannmuren aktivert, må du sette msdtc-prosessen som et unntak.
3: Maskinen som deltar i transaksjonen kan ikke krysse domenet (hvis det er på tvers av domener, har Microsoft foreløpig ingen eksakt løsning);
4: Bruk distribuerte transaksjoner kun når du har flere databaser, hvis det er samme database, er det best å bruke SqlTransaction.
1. Legg til referansen til System.Transactions først (du må legge til Net-assembly)

Koden på C#-kallet er som følger:

Adressen til bloggene som forklarer denne distribuerte transaksjonsklassen er veldig tydelig:http://www.cnblogs.com/artech/archive/2010/01/31/1660356.html

2. Sett konfigurasjonen av webserver- og SQL-servermiljøet

Kontrollpanel - > Systemer og sikkerhet - > Administrasjonsverktøy - > komponenttjenester
(Dette kreves for både WEB- og SQL-servere)





Kontrollpanel - > Systemer og sikkerhet - > Administrasjonsverktøy - > Tjenester
(Dette kreves for både WEB- og SQL-servere)




Kontrollpanel - > System og sikkerhet - > Windows-brannmur
(Dette kreves for både WEB- og SQL-servere)




3. MSSQL-konfigurasjon

For servertilkoblinger, høyreklikk – > egenskaper




4. Konfigurer verter (konfigurer kun WEB-serveren, hvis ikke, konfigurer den også på SQL-serveren)

C:\Windows\System32\drivers\etc
hosts-fil, som åpnes med Notisblokk
(SQL-serverinformasjon må konfigureres i Hosts-filen på WEB-serveren)
(Hvis testen feiler, konfigurer informasjonen til webserveren i Hosts-filen på SQL-serveren)






Foregående:Eksterne lenker til Discuz X-foruminnlegg legger til nofollow-attributtet
Neste:Funksjoner som beholder to desimaler etter desimalpunktet i C# og hvordan man bruker dem
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com