Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Program Windows Communication Foundation (WCF) udostępnia trzy atrybuty służące do konfigurowania transakcji dla usługi: transactionFlow, transactionProtocoli transactionTimeout.
Konfigurowanie przepływu transakcji
Większość wstępnie zdefiniowanych powiązań WCF zawiera transactionFlow atrybuty i transactionProtocol , dzięki czemu można skonfigurować powiązanie tak, aby akceptowały przychodzące transakcje dla określonego punktu końcowego przy użyciu określonego protokołu przepływu transakcji. Ponadto możesz użyć elementu transactionFlow i jego atrybutu transactionProtocol do skonfigurowania własnego powiązania niestandardowego. Aby uzyskać więcej informacji na temat ustawiania elementów konfiguracji, zobacz <binding> i Schemat konfiguracji programu WCF.
Atrybut transactionFlow określa, czy przepływ transakcji jest włączony dla punktów końcowych usługi, które używają powiązania.
Konfigurowanie protokołu transakcji
Atrybut transactionProtocol określa protokół transakcji do użycia z punktami końcowymi usługi, które używają powiązania.
Poniżej przedstawiono przykład sekcji konfiguracji, która konfiguruje określone powiązanie w celu obsługi przepływu transakcji, a także użycie protokołu 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>
Konfigurowanie parametru transactionTimeout
Można skonfigurować atrybut transactionTimeout dla usługi WCF w elemencie behavior pliku konfiguracji. Poniższy kod pokazuje, jak to zrobić.
<configuration>
<system.serviceModel>
<behaviors>
<behavior name="NewBehavior" transactionTimeout="00:01:00" /> <!-- 1 minute timeout -->
</behaviors>
</system.serviceModel>
</configuration>
Atrybut transactionTimeout określa okres, w którym musi zostać ukończona nowa transakcja utworzona w usłudze. Jest on używany jako TransactionScope limit czasu dla każdej operacji, która ustanawia nową transakcję, a jeśli OperationBehaviorAttribute jest stosowane, TransactionScopeRequired właściwość jest ustawiona na true.
Limit czasu określa czas od utworzenia transakcji do zakończenia fazy 1 w protokole zatwierdzania dwufazowego.
Jeśli ten atrybut jest ustawiony w service sekcji konfiguracji, należy zastosować co najmniej jedną metodę odpowiedniej usługi z parametrem OperationBehaviorAttribute, w którym TransactionScopeRequired właściwość jest ustawiona na true.
Należy pamiętać, że użyta wartość limitu czasu jest mniejszą wartością między tym transactionTimeout ustawieniem konfiguracji a dowolną TransactionTimeout właściwością.