Delen via


ServiceModel Transaction Configuration

Windows Communication Foundation (WCF) biedt drie kenmerken voor het configureren van transacties voor een service: transactionFlow, transactionProtocolen 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.

Zie ook