Почему WCF нужен DTC для потока транзакций?

Интересно, почему WCF нужно настроить MSDTC и запустить на клиенте и сервере, когда я использую поток транзакций. (с включенным доступом к сети)

В конце концов, транзакции в WCF управляются через сообщения SOAP с использованием WsAtomicTransaction... Так почему же, черт возьми, два DTC должны взаимодействовать друг с другом?

Спасибо за ваш ответ.

1 ответ

Да, WCF может и будет использовать WS-AtomicTransactions, когда это уместно, в основном в сценариях взаимодействия (с клиентами или службами, отличными от.NET).

Но, как и много раз, функциональная совместимость достигается по цене (производительности), и если все ваши клиенты и службы работают на базе Windows, WCF решит использовать OleTransactions (OleTx для простых случаев с одним долговременным хранилищем) или MS-DTC (для более продвинутые сценарии с участием нескольких магазинов длительного пользования - по соображениям производительности и простоты.

Таким образом, WCF не нуждается в MS-DTC как таковом, но WCF (и вы!) Могут извлечь из этого пользу в сценариях только для Windows.

Другие вопросы по тегам