Sdílet prostřednictvím


Konfigurace transakcí ServiceModel

Windows Communication Foundation (WCF) poskytuje tři atributy pro konfiguraci transakcí pro službu: transactionFlow, transactionProtocola transactionTimeout.

Konfigurace toku transakcí

Většina předdefinovaných vazeb WCF obsahuje atributy transactionFlow a transactionProtocol atributy, abyste mohli nakonfigurovat vazbu tak, aby přijímala příchozí transakce pro konkrétní koncový bod pomocí konkrétního protokolu toku transakcí. Kromě toho můžete použít transactionFlow element a jeho transactionProtocol atribut k vytvoření vlastní vazby. Další informace o nastavení elementů konfigurace naleznete v tématu <vazby> a schéma konfigurace WCF.

Atribut transactionFlow určuje, zda je tok transakce povolen pro koncové body služby, které používají vazbu.

Konfigurace transactionProtocol

Atribut transactionProtocol určuje transakční protokol, který se má použít s koncovými body služby, které používají vazbu.

Následuje příklad oddílu konfigurace, který konfiguruje zadanou vazbu pro podporu toku transakcí a také použití protokolu 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>  

Konfigurace transactionTimeoutu

Atribut pro službu WCF můžete nakonfigurovat transactionTimeout v behavior elementu konfiguračního souboru. Následující kód ukazuje, jak to provést.

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

Atribut transactionTimeout určuje časové období, během kterého se musí dokončit nová transakce vytvořená ve službě. Používá se jako TransactionScope časový limit pro jakoukoli operaci, která vytváří novou transakci, a pokud OperationBehaviorAttribute je použita, TransactionScopeRequired vlastnost je nastavena na true.

Časový limit určuje dobu od vytvoření transakce do dokončení fáze 1 v protokolu dvoufázového potvrzení.

Pokud je tento atribut nastaven v rámci service oddílu konfigurace, měli byste použít alespoň jednu metodu odpovídající služby s OperationBehaviorAttribute, ve které TransactionScopeRequired je vlastnost nastavena .true

Všimněte si, že použitá hodnota časového limitu je menší hodnotou mezi tímto transactionTimeout nastavením konfigurace a libovolnou TransactionTimeout vlastností.

Viz také