Kevin Li

突破.net极限
posts - 32, comments - 61, trackbacks - 24, articles - 0

在测试WCF 的WS-AT协议的时候发现,虽然wsHttpBinding只支持WS-AtomicTransaction,但是当我没有配置MSDTC支持WS-AT协议,或者没有启用WS-AT协议,事务还是能够正常的Commit和Rollback。刚开始不知道是什么原因,后来查了一下微软的相关文档,发现使用wsHttpBinding支持事务时,出于效率的考虑,WCF会首先使用Oletx事务,而不是完全的ws-at协议。只有在oletx协议不可用的情况,比如135端口没开、或者和java web service互操作的情况下,wcf才会完全使用ws-at协议。这固然是好,但是有时候我们并不希望这样(比如测试的时候),这时候我们可以修改注册表,禁止事务自动升级为oletx事务。具体是在注册表:HKLM\SOFTWARE\Microsoft\WSAT\3.0下增加一个名为“OleTxUpgradeEnabled”的DWord值,并且设置值为0(1为启用自动升级)




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 761201




相关文章:

相关链接: