ServiceModel-transaktionskonfiguration
Windows Communication Foundation (WCF) innehåller tre attribut för att konfigurera transaktioner för en tjänst: transactionFlow
, transactionProtocol
och transactionTimeout
.
Konfigurera transactionFlow
De flesta fördefinierade bindningar som WCF tillhandahåller innehåller attributen transactionFlow
och transactionProtocol
så att du kan konfigurera bindningen så att den accepterar inkommande transaktioner för en specifik slutpunkt med hjälp av ett specifikt transaktionsflödesprotokoll. Dessutom kan du använda elementet transactionFlow
och dess transactionProtocol
attribut för att skapa en egen anpassad bindning. Mer information om hur du ställer in konfigurationselementen finns i bindning> och WCF-konfigurationsschema.<
Attributet transactionFlow
anger om transaktionsflödet är aktiverat för tjänstslutpunkter som använder bindningen.
Konfigurera transactionProtocol
Attributet transactionProtocol
anger vilket transaktionsprotokoll som ska användas med tjänstslutpunkter som använder bindningen.
Följande är ett exempel på ett konfigurationsavsnitt som konfigurerar den angivna bindningen för att stödja transaktionsflödet, samt en användning av WS-AtomicTransaction-protokollet.
<netNamedPipeBinding>
<binding name="test"
closeTimeout="00:00:10"
openTimeout="00:00:20"
receiveTimeout="00:00:30"
sendTimeout="00:00:40"
transactionFlow="true"
transactionProtocol="WSAtomicTransactionOctober2004"
hostNameComparisonMode="WeakWildcard"
maxBufferSize="1001"
maxConnections="123"
maxReceivedMessageSize="1000">
</binding>
</netNamedPipeBinding>
Konfigurera transactionTimeout
Du kan konfigurera transactionTimeout
attributet för WCF-tjänsten i -elementet behavior
i konfigurationsfilen. Följande kod visar hur du gör detta.
<configuration>
<system.serviceModel>
<behaviors>
<behavior name="NewBehavior" transactionTimeout="00:01:00" /> <!-- 1 minute timeout -->
</behaviors>
</system.serviceModel>
</configuration>
Attributet transactionTimeout
anger den tidsperiod inom vilken en ny transaktion som skapas i tjänsten måste slutföras. Den används som TransactionScope timeout för alla åtgärder som upprättar en ny transaktion, och om OperationBehaviorAttribute den tillämpas TransactionScopeRequired är egenskapen inställd på true
.
Tidsgränsen anger varaktigheten från det att transaktionen skapades till slutförandet av fas 1 i tvåfas-incheckningsprotokollet.
Om det här attributet anges i ett service
konfigurationsavsnitt bör du använda minst en metod för motsvarande tjänst med OperationBehaviorAttribute, där TransactionScopeRequired egenskapen är inställd på true
.
Observera att det timeout-värde som används är det mindre värdet mellan den här transactionTimeout
konfigurationsinställningen och alla TransactionTimeout egenskaper.