调试模式下的TransactionScope随机错误

时间:2009-10-12 14:40:48

标签: c# .net transactions

从调试模式执行代码时,我会随机获得以下错误。

Cannot access a disposed object.
Object name: 'SqlDelegatedTransaction'.
  • 在立即执行几条命令后抛出错误,而不是超时问题
  • 我只有一个用

    打开的交易

    使用(var scope = new TransactionScope(TransactionOption.Required))

  • 在嵌套代码中使用上述相同的语句打开多个连接。

  • 我正在使用sqlserver 2008

可能出现什么问题?

1 个答案:

答案 0 :(得分:0)

当您使用TransactionOption.Required时,事务会加入环境事务。

一种可能的理论是:

  • 如果您通过事务范围并且不调用scope.Complete(),它将处置abmient事务。尝试对数据库运行的下一个代码将失败。

另一个是活动结果集的问题:

  • 您使用的是不支持多活动结果集(MARS)的SQL Server 2000
  • 您的连接字符串是否指定MultipleActiveResultSets = true