.NET中的TransactionScope存在bug?有更多信息吗?

24

我曾经读到(或者是从同事那里听说过),在.NET中,TransactionScope可能会达到超时时间然后进行VoteCommit(而不是VoteRollback)。这是否准确或纯属道听途说?我在网上找不到任何关于此问题的信息(如果这是一个问题的话),所以我想知道是否有人有直接经验并能够解释一下?

2个回答

31

Marc Gravell所描述的行为在.NET 4.0中已经更改。现在,它将抛出一个InvalidOperationException而不是自动提交操作。因此,在4.0中您不再需要使用显式unbind。


27
如果您是在与SQL Server相关的方面,那么有一个问题可以通过修改连接字符串解决;请查看我在这里的回答或完整详情
简短版是:确保连接字符串中有Transaction Binding=Explicit Unbind;
事实上它并没有进行投票提交 - 事务(和任何早期操作)已经回滚,但是任何随后的操作(仍然在TransactionScope内部)可以在nul-transaction中执行,即自动提交。

其他数据库(如Informix)的行为是否相同? - Anyname Donotcare
1
@just_name 这取决于供应商;我不知道 Informix 的具体情况 - 你需要查阅他们的文档。 - Marc Gravell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接