.NET中的TransactionScope错误? 更多信息?

我已经阅读过(或者从同事那里听到)在.NET中,TransactionScope可以达到超时,然后是VoteCommit(而不是VoteRollback)。 这是准确还是传闻? 我无法在网上找到谈论这个问题的信息(如果这是一个问题),所以我想知道是否有人有任何直接经验并且可以解决一些问题?

如果您的意思与SQL Server有关,那么您可以在连接字符串中修复问题; 请在此处查看我的回复,或详细信息。

简短版本是:确保你有Transaction Binding=Explicit Unbind; 在连接字符串中。

它实际上并没有进行投票提交 – 事务(以及任何早期操作)已回滚,但任何后续操作(仍在TransactionScope )都可以在nul事务中执行,即自动提交。

Marc Gravell描述的行为在.Net 4.0中已经改变。 现在它将抛出InvalidOperationException而不是自动提交的操作。 所以在4.0中你不再需要使用Explicit Unbind。