Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 25464|Svar: 0

[Källa] .net/C# Distribuerad TransaktionScope

[Kopiera länk]
Publicerad på 2018-05-05 10:53:17 | | | |
För att citera någon annans guide:
Vid faktiskt utvecklingsarbete, kör en händelse och anropa sedan ett annat gränssnitt för att infoga data, om det finns ett undantag i bearbetningslogiken blir den tidigare infogade datan skräpdata,
Det vi vill är att kunna definiera hela metoden som en transaktion, och klassen TransactionScope erbjuder en enkel metod som gör att du slipper interagera med själva transaktionen.
att markera ett kodblock som deltagande i en transaktion. Objektet TransactionScope skapar en transaktion och sätter transaktionen till Current-egenskapen för Transaction-klassen.

1. Fördelar med TransactionScope
1. Det är mer bekvämt att använda. TransactionScope kan implementera implicita transaktioner, så att du kan skriva dataåtkomstlagre-kod utan att ta hänsyn till transaktioner, men kontrollera transaktioner på affärsnivån.
2. Distribuerade transaktioner kan implementeras, såsom databasöverskridande eller MSMQ.

2. Nackdelar med TransaktionScope
1. Kostnadsprestandan är inte hög. Till exempel kontrollerar du bara transaktionerna för ett bibliotek i "Scope". Att använda "TransactionScope" är lite slöseri.
2. Under normala omständigheter, så länge du använder "TransactionScope", behöver du konfigurera MSDTC, installera en brandvägg och öppna port 139. Denna port kan inte ändras

3. Om du måste använda distribuerade transaktioner måste du tänka på det
1. Måste denna operation ingå i transaktionen? Om detta steg inte slutförs eller misslyckas, är det värt att rulla tillbaka hela transaktionen? Finns det inga eleganta kompensations- eller feltoleransåtgärder?
2. Hur många punkter involverar distribuerade transaktioner? Måste ha en lång rad realtidsoperationer? Kan du inte effektivisera vissa punkter genom notifikationsoperationer?
3. Efter att ha initierat en distribuerad transaktion, utförde du transaktionsoberoende operationer, även om dessa operationer inte var transaktionsrelaterade? (t.ex. läsa data, beräkna, vänta på att användaren ska returnera ett meddelande, vänta på samtalsretur från andra moduler, etc.)
4. Du räknade väl inte med några läsoperationer i transaktionen? Detta är ett enkelt misstag att göra när du använder en select-operation i transaktionen.
5. Vissa steg i din operation kan utföras efter att alla operationer är slutförda. Denna typ av operation har tydliga notifikationsegenskaper. Notifikationsoperationer säger, jag ger dig en notis, och jag garanterar att den når dig;
Du måste ta emot detta meddelande och se till att det behandlas, men du behöver inte hantera det så fort jag meddelar dig. Denna operation kan uppenbarligen göras med en annan uppgift.

4. Var uppmärksam på följande punkter när du använder distribuerade transaktioner
1: Se till att maskinen som deltar i transaktionen har aktiverat distribuerat transaktionsstöd.
2: Om datorn har brandväggen aktiverad måste du sätta msdtc-processen som ett undantag.
3: Maskinen som deltar i transaktionen kan inte korsa domänen (om den är domänöverskridande har Microsoft för närvarande ingen exakt lösning);
4: Använd distribuerade transaktioner endast när du har flera databaser, om det är samma databas är det bäst att använda SqlTransaction.
1. Lägg till referensen System.Transactions först (du behöver lägga till Net-assemblyn)

Koden på C#-anropet är följande:

Adressen till bloggarna som förklarar denna distribuerade transaktionsklass är mycket tydlig:http://www.cnblogs.com/artech/archive/2010/01/31/1660356.html

2. Sätt konfigurationen av webbservern och SQL-serverns miljö

Kontrollpanel - > System & säkerhet - > Hanteringsverktyg - > komponenttjänster
(Detta krävs för både WEB- och SQL-servrar)





Kontrollpanel - > System & Säkerhet - > Hanteringsverktyg - > Tjänster
(Detta krävs för både WEB- och SQL-servrar)




Kontrollpanel - > System & Säkerhet - > Windows-brandvägg
(Detta krävs för både WEB- och SQL-servrar)




3. MSSQL-konfiguration

För serveranslutningar, högerklicka – > egenskaper




4. Konfigurera värdar (konfigurera endast WEBB-servern, annars konfigurera den även på SQL-servern)

C:\Windows\System32\drivers\etc
hosts-fil, som öppnas med Notepad
(SQL-serverinformation måste konfigureras i Hosts-filen på WEB-servern)
(Om testet misslyckas, konfigurera informationen om webbservern i Hosts-filen på SQL-servern)






Föregående:Externa länkar till Discuz X-foruminlägg lägger till nofollow-attributet
Nästa:Funktioner som behåller två decimaler efter decimalpunkten i C# och hur man använder dem
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com