什么是 Enlist=false 表示在 SQL Server 的连接字符串中

本文关键字:Server 连接 字符串 SQL Enlist false 表示 什么 | 更新日期: 2023-09-27 18:36:45

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

"无法执行事务操作,因为有挂起的请求正在处理此事务。"

我在

博客中的某处阅读,我在连接字符串后附加了enlist=true,问题已解决。

注意:我正在将我的数据库从 sql 服务器 2005 升级到 sql 服务器 2008R2。

请帮助了解使用登记的重要性。

什么是 Enlist=false 表示在 SQL Server 的连接字符串中

登记是分布式事务的用户

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

注意:在调用EnlistDistributedTransaction之前,必须open连接。

下面是一个带有Enlist=False;的示例

MSDN 说:

属性支持关键字 Enlist,该关键字 指示 System.Data.SqlClient 是否将检测事务性 上下文,并在分布式中自动登记连接 交易。如果 Enlist=true,则自动登记连接 在打开线程的当前事务上下文中。如果登记=假, SqlClient 连接不与分布式连接交互 交易。登记的默认值为 true。如果"入伍"不是 在连接字符串中指定,则连接将自动 在分布式事务中登记(如果在以下情况下检测到分布式事务) 连接已打开。