Почему WCF нужен DTC для потока транзакций?
Интересно, почему WCF нужно настроить MSDTC и запустить на клиенте и сервере, когда я использую поток транзакций. (с включенным доступом к сети)
В конце концов, транзакции в WCF управляются через сообщения SOAP с использованием WsAtomicTransaction... Так почему же, черт возьми, два DTC должны взаимодействовать друг с другом?
Спасибо за ваш ответ.
1 ответ
Да, WCF может и будет использовать WS-AtomicTransactions, когда это уместно, в основном в сценариях взаимодействия (с клиентами или службами, отличными от.NET).
Но, как и много раз, функциональная совместимость достигается по цене (производительности), и если все ваши клиенты и службы работают на базе Windows, WCF решит использовать OleTransactions (OleTx для простых случаев с одним долговременным хранилищем) или MS-DTC (для более продвинутые сценарии с участием нескольких магазинов длительного пользования - по соображениям производительности и простоты.
Таким образом, WCF не нуждается в MS-DTC как таковом, но WCF (и вы!) Могут извлечь из этого пользу в сценариях только для Windows.