Per citare la guida di qualcun altro: Nel lavoro di sviluppo effettivo, esegui un evento e poi chiama un'altra interfaccia per inserire dati; se c'è un'eccezione nella logica di elaborazione, allora i dati inseriti in precedenza diventeranno dati spazzatura, Quello che vogliamo è poter definire l'intero metodo come una transazione, e la classe TransactionScope fornisce un metodo semplice che ti permetta di non dover interagire con la transazione stessa. per contrassegnare un blocco di codice come partecipante a una transazione. L'oggetto TransactionScope crea una transazione e imposta la transazione sulla proprietà Current della classe Transaction.
1. Vantaggi di TransactionScope 1. È più comodo da usare. TransactionScope può implementare transazioni implicite, così da poter scrivere codice del livello di accesso dati senza considerare le transazioni, ma controllare le transazioni al livello business. 2. Le transazioni distribuite possono essere implementate, come cross-database o MSMQ.
2. Svantaggi di TransactionScope 1. Il rapporto costo-rendimento non è elevato. Ad esempio, controlli solo le transazioni di una libreria in "Scope". Usare "TransactionScope" è un po' uno spreco. 2. In circostanze normali, finché usi "TransactionScope", devi configurare MSDTC, installare un firewall e aprire la porta 139. Questa conversione non può essere modificata
3. Se devi usare transazioni distribuite, devi pensarci 1. Questa operazione deve essere necessariamente presente nella transazione? Se questo passaggio non viene completato o fallisce, vale la pena annullare l'intera transazione? Non esistono misure di compensazione elegante o di tolleranza ai difetti? 2. Quanti punti comportano le transazioni distribuite? Deve avere una lunga serie di operazioni in tempo reale? Non puoi semplificare alcuni punti tramite operazioni di notifica? 3. Dopo aver avviato una transazione distribuita, hai eseguito operazioni indipendenti dalla transazione, anche se queste operazioni non erano correlate alla transazione? (ad esempio, leggere dati, calcolare, aspettare che l'utente restituisca un messaggio, attesa del ritorno di chiamata di altri moduli, ecc.) 4. Non hai contato alcune operazioni di lettura nella transazione, vero? È un errore facile da commettere quando si utilizza un'operazione di selezione nella transazione. 5. Alcuni passaggi della tua operazione possono essere eseguiti dopo che tutte le operazioni sono state completate. Questo tipo di operazione presenta caratteristiche evidenti di notifica. Le operazioni di notifica dicono: ti do una notifica e ti garantisco che la notifica arriverà; Devi prendere questa notifica e assicurarti che venga elaborata, ma non devi occupartene non appena ti notifico. Questa operazione ovviamente può essere eseguita con un altro compito.
4. Presta attenzione ai seguenti punti quando utilizzi transazioni distribuite 1: Assicurarsi che la macchina partecipante alla transazione abbia abilitato il supporto distribuito delle transazioni. 2: Se la macchina ha il firewall attivato, devi impostare il processo msdtc come eccezione. 3: La macchina che partecipa alla transazione non può attraversare il dominio (se è cross-domain, Microsoft al momento non ha una soluzione esatta); 4: Usa transazioni distribuite solo quando hai più database; se si tratta dello stesso database, è meglio usare SqlTransaction. 1. Aggiungi prima il riferimento di System.Transactions (devi aggiungere l'assembly Net)
Il codice sulla chiamata C# è il seguente:
L'indirizzo dei blog che spiega questa classe di transazioni distribuite è molto chiaro:http://www.cnblogs.com/artech/archive/2010/01/31/1660356.html
2. Impostare la configurazione del server web e dell'ambiente SQL Server
Pannello di controllo - Sistemi > e Sicurezza - Strumenti di Gestione > - > Servizi Componenti (Questo è richiesto sia per server WEB che SQL)
Pannello di controllo - > Sistemi e Sicurezza - Strumenti di Gestione > - > Services
(Questo è richiesto sia per server WEB che SQL)
Pannello di controllo - > Sistema e Sicurezza - > Firewall di Windows
(Questo è richiesto sia per server WEB che SQL)
3. Configurazione MSSQL
Per le connessioni al server, clicca con il tasto destro - > proprietà
4. Configurare gli host (configurare solo il server WEB, se non lo è, configurarlo anche sul server SQL)
C:\Windows\System32\drivers\etc hosts, che viene aperto con Notepad (Le informazioni sul server SQL devono essere configurate nel file Hosts sul server WEB) (Se il test fallisce, configura le informazioni del server web nel file Hosts sul server SQL)
|