Översikt över Transaktioner i Windows Communication Foundation
Transaktioner är ett sätt att gruppera en uppsättning åtgärder i en enda odelbar körningsenhet. En transaktion är en samling åtgärder med följande egenskaper:
Atomitet. Detta säkerställer att alla uppdateringar som slutförts under en viss transaktion checkas in och görs varaktiga eller att alla avbryts och återställs till sitt tidigare tillstånd.
Konsekvens. Detta garanterar att de ändringar som görs under en transaktion representerar en transformering från ett konsekvent tillstånd till ett annat. En transaktion som till exempel överför pengar från ett checkkonto till ett sparkonto ändrar inte mängden pengar i det totala bankkontot.
Isolering. Detta förhindrar att en transaktion observerar icke-bakåtkompatibla ändringar som hör till andra samtidiga transaktioner. Isolering ger en abstraktion av samtidighet samtidigt som en transaktion inte kan ha en oväntad inverkan på körningen av en annan transaktion.
Hållbarhet. Det innebär att uppdateringar av hanterade resurser (till exempel en databaspost) blir beständiga när de har checkats in.
Windows Communication Foundation (WCF) innehåller en omfattande uppsättning funktioner som gör att du kan skapa distribuerade transaktioner i webbtjänstprogrammet.
WCF implementerar stöd för WS-AtomicTransaction-protokollet (WS-AT) som gör det möjligt för WCF-program att flöda transaktioner till kompatibla program, till exempel driftskompatibla webbtjänster som skapats med hjälp av teknik från tredje part. WCF implementerar också stöd för PROTOKOLLET OLE-transaktioner, som kan användas i scenarier där du inte behöver interop-funktioner för att aktivera transaktionsflödet.
Du kan använda en programkonfigurationsfil för att konfigurera bindningar för att aktivera eller inaktivera transaktionsflöde, samt ange önskat transaktionsprotokoll för en bindning. Dessutom kan du ange tidsgränser för transaktioner på tjänstnivå med hjälp av konfigurationsfilen. Mer information finns i Aktivera transaktionsflöde.
Med transaktionsattribut i System.ServiceModel namnområdet kan du göra följande:
Konfigurera tidsgränser för transaktioner och filtrering på isoleringsnivå med hjälp av attributet ServiceBehaviorAttribute .
Aktivera transaktionsfunktioner och konfigurera transaktionsavslutsbeteende med hjälp av attributet OperationBehaviorAttribute .
Använd attributen ServiceContractAttribute och OperationContractAttribute på en kontraktsmetod för att kräva, tillåta eller neka transaktionsflöde.
Mer information finns i ServiceModel-transaktionsattribut.