Partager via


Configuration des transactions ServiceModel

Windows Communication Foundation (WCF) fournit trois attributs permettant de configurer des transactions pour un service : transactionFlow, transactionProtocol et transactionTimeout.

Configuration de transactionFlow

La plupart des liaisons prédéfinies fournies par WCF contiennent les attributs transactionFlow et transactionProtocol afin de vous permettre de configurer la liaison pour qu'elle accepte des transactions entrantes pour un point de terminaison spécifique à l'aide d'un protocole de flux de transaction spécifique. Par ailleurs, l'élément transactionFlow et son attribut transactionProtocol vous permettent de générer votre propre liaison personnalisée. Pour plus d'informations sur le paramétrage des éléments de configuration, consultez <binding> et Windows Communication Foundation Configuration Schema.

L'attribut transactionFlow spécifie si le flux de transaction est activé pour les points de terminaison de service qui utilisent la liaison.

Configuration de transactionProtocol

L'attribut transactionProtocol spécifie le protocole de transaction à utiliser avec les points de terminaison de service qui utilisent la liaison.

L'exemple suivant présente une section de configuration qui configure la liaison spécifiée pour prendre en charge le flux de transaction, ainsi qu'une utilisation du protocole WS-AtomicTransaction.

<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>

Configuration de transactionTimeout

Vous pouvez configurer l'attribut transactionTimeout pour votre service WCF dans l'élément behavior du fichier de configuration. Le code suivant montre comment procéder :

<configuration>
   <system.serviceModel>
      <behaviors>
         <behavior name="NewBehavior" transactionTimeout="00:01:00" /> <!-- 1 minute timeout -->
      </behaviors>
   </system.serviceModel>
</configuration>

L'attribut transactionTimeout spécifie le délai dans lequel une nouvelle transaction créée au niveau du service doit se terminer. Il est utilisé comme délai d'attente TransactionScope pour toute opération qui établit une nouvelle transaction ; si OperationBehaviorAttribute est appliqué, la propriété TransactionScopeRequired a la valeur true.

Le délai d'attente spécifie la durée entre la création de la transaction et l'exécution de la phase 1 du protocole de validation en deux phases.

Si cet attribut est défini dans une section de configuration de service, vous devez appliquer au moins une méthode du service correspondant avec OperationBehaviorAttribute, dans lequel la propriété TransactionScopeRequired a la valeur true.

Notez que la valeur du délai d'attente utilisée est toujours la plus petite entre le paramètre de configuration transactionTimeout et la propriété TransactionTimeout.

Voir aussi

Autres ressources

<binding>
Windows Communication Foundation Configuration Schema