SQL事务提交使连接处于损坏状态(c#)

Ami*_*ens 1 c# sql database-connection sql-server-2008 clr4.0

Short: 在调用transaction.Commit()之后,下一个操作失败,就好像事务没有提交一样.

更多细节: 我们有一个线程对数据库运行写查询,其中一些被封装在一个事务中.在一段时间后运行较重的负载时,我们遇到一种情况,即提交事务后的操作失败,并显示一条指示事务正在进行的错误,具体取决于提交后执行的操作,我们收到以下错误之一:

下一步操作是'开始交易:

...连接不支持并行事务......

下一个操作是插入/更新/删除

当分配给命令的连接处于挂起的本地事务中时,ExecuteNonQuery要求命令具有事务.该命令的Transaction属性尚未初始化.

通过调试器检查Sql Connection对象表明它包含一个'sqlInnerTransaction'对象,其父对象设置为null.我们知道对'Commit'的调用成功完成而没有错误.
运行.net 4.0,SQL Server 2008 R2 SP2

And*_*mar 6

看这条消息:

Connection不支持并行事务

我想知道你是否在多个线程中使用单个连接对象?

连接不是线程安全的.您只应在创建它们的线程中使用它们.