什么是Enlist = false意味着在sql server的连接字符串中?

Sup*_*jee 7 c# ado.net sql-server-2005 sql-server-2008-r2

我是.net的初学者.我遇到了以下错误的问题

"无法执行事务操作,因为存在处理此事务的待处理请求."

我在博客.i中的某个地方读到了我的连接字符串,enlist=true问题解决了.

注意:我正在将我的数据库从sql server 2005升级到sql server 2008R2.

请帮助理解使用enlist的重要性.

suj*_*lil 9

Enlisting是Distributed Transaction的用户

如果Connection对象确定事务处于活动状态,它将自动登记到现有的分布式事务中.从连接池打开或检索连接时,会发生自动事务登记.您可以通过指定Enlist=falseSqlConnection的连接字符串参数或OLE DB Services = -7作为OleDbConnection的连接字符串参数来禁用现有事务中的自动登记.

注意 Connection必须open在调用之前EnlistDistributedTransaction.

这是你的一个例子 Enlist=False;


Rah*_*thi 5

MSDN说:

ConnectionString 属性支持关键字 Enlist,该关键字指示 System.Data.SqlClient 是否将检测事务上下文并自动在分布式事务中登记连接。如果 Enlist=true,连接将自动登记在打开线程的当前事务上下文中。如果 Enlist=false,则 SqlClient 连接不与分布式事务交互。Enlist 的默认值为 true。如果在连接字符串中未指定 Enlist,并且在打开连接时检测到该连接,则该连接将自动登记在分布式事务中。