【问题标题】:TransactionScope bug in .NET? More information?.NET 中的 TransactionScope 错误?更多信息?
【发布时间】:2010-09-16 18:17:30
【问题描述】:

我已经读到(或者可能从同事那里听说)在 .NET 中,TransactionScope 可以达到其超时,然后 VoteCommit(与 VoteRollback 相对)。这是准确的还是传闻?我无法在网络上找到讨论这个问题的信息(如果它是一个问题),所以我想知道是否有人对此有任何直接经验并且可以提供一些启示?

【问题讨论】:

    标签: c# .net transactions


    【解决方案1】:

    如果您的意思是与 SQL Server 相关,那么您可以在连接字符串中修复一个问题;请参阅我的回复here,或完整的详细信息here

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

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

    【讨论】:

    • informix 等其他数据库的行为是否相同?
    • @just_name 它将取决于提供者;我不知道专门针对informix - 您必须查阅他们的文档
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多