为什么WCF需要DTC用于事务流?

时间:2010-01-26 12:02:59

标签: .net wcf transactions wsat

我想知道为什么当我使用事务流时,WCF需要在客户端和服务器上配置和启动MSDTC。 (启用网络访问)

毕竟,使用WsAtomicTransaction通过SOAP消息管理WCF中的事务... 那么为什么两个DTC需要相互沟通呢?

感谢您的回复。

1 个答案:

答案 0 :(得分:3)

是的,WCF可以并且将在适当的时候使用WS-AtomicTransactions--主要是在互操作方案中(使用非.NET客户端或服务)。

但是很多次 - 互操作性以(性能)价格出现,如果您的客户和服务都是基于Windows的,WCF将选择使用OleTransactions(OleTx用于只有一个耐用商店的简单案例)或MS-DTC (对于涉及多个持久存储的更高级方案) - 出于性能和简单性的原因。

因此,WCF本身并不需要 MS-DTC - 但是WCF(和你!)可以在仅限Windows的场景中受益。