我已经阅读过(或者从同事那里听到)在.NET中,TransactionScope可以达到超时,然后是VoteCommit(而不是VoteRollback).这是准确还是传闻?我无法在网上找到谈论这个问题的信息(如果这是一个问题),所以我想知道是否有人有任何直接的经验,可以解决一些问题?
Marc Gravell描述的行为已在.Net 4.0中更改.它将自动抛出InvalidOperationException而不是自动提交的操作.所以在4.0中你不再需要使用Explicit Unbind.
如果您的意思与SQL Server有关,那么您可以在连接字符串中修复问题; 看到我的回答这里,或全部细节在这里.
简短版本是:确保您拥有Transaction Binding=Explicit Unbind;
连接字符串.
它实际上并没有进行投票提交 - 事务(以及任何早期操作)已经回滚,但是任何后续操作(仍在其中TransactionScope
)都可以在nul事务中执行,即自动提交.