ServiceModel Transaction Configuration
Windows Communication Foundation (WCF) biedt drie kenmerken voor het configureren van transacties voor een service: transactionFlow
, transactionProtocol
en transactionTimeout
.
TransactionFlow configureren
De meeste vooraf gedefinieerde bindingen die WCF biedt, bevatten de transactionFlow
en transactionProtocol
kenmerken, zodat u de binding kunt configureren om binnenkomende transacties voor een specifiek eindpunt te accepteren met behulp van een specifiek transactiestroomprotocol. Daarnaast kunt u het transactionFlow
element en het transactionProtocol
bijbehorende kenmerk gebruiken om uw eigen aangepaste binding te maken. Zie bindings- en WCF-configuratieschema voor meer informatie over het instellen van de configuratie-elementen<.>
Het transactionFlow
kenmerk geeft aan of transactiestroom is ingeschakeld voor service-eindpunten die gebruikmaken van de binding.
TransactionProtocol configureren
Het transactionProtocol
kenmerk geeft het transactieprotocol op dat moet worden gebruikt met service-eindpunten die gebruikmaken van de binding.
Hier volgt een voorbeeld van een configuratiesectie waarmee de opgegeven binding wordt geconfigureerd ter ondersteuning van de transactiestroom, evenals het WS-AtomicTransaction-protocol.
<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>
TransactionTimeout configureren
U kunt het transactionTimeout
kenmerk voor uw WCF-service configureren in het behavior
element van het configuratiebestand. De volgende code laat zien hoe u dit doet.
<configuration>
<system.serviceModel>
<behaviors>
<behavior name="NewBehavior" transactionTimeout="00:01:00" /> <!-- 1 minute timeout -->
</behaviors>
</system.serviceModel>
</configuration>
Het transactionTimeout
kenmerk geeft de periode aan waarin een nieuwe transactie die op de service is gemaakt, moet worden voltooid. Deze wordt gebruikt als time-out TransactionScope voor elke bewerking die een nieuwe transactie tot stand brengt en als OperationBehaviorAttribute deze wordt toegepast, wordt de TransactionScopeRequired eigenschap ingesteld op true
.
De time-out geeft de duur aan van het maken van de transactie tot de voltooiing van fase 1 in het doorvoerprotocol in twee fasen.
Als dit kenmerk is ingesteld in een service
configuratiesectie, moet u ten minste één methode van de bijbehorende service toepassen met OperationBehaviorAttribute, waarin de TransactionScopeRequired eigenschap is ingesteld op true
.
Houd er rekening mee dat de gebruikte time-outwaarde de kleinere waarde is tussen deze transactionTimeout
configuratie-instelling en een TransactionTimeout eigenschap.