事务已被隐式或显式提交,或已终止

事务处理用到TransactionScope,调试提示错误“事务已被隐式或显式提交,或已终止”。

看了一篇文章"ConnectString中enlist设置的含义",后来给连接字符串加了"Enlist=false"。问题就这样解决了。

ConnectionString = "Data Source=192.168.1.1;Initial Catalog=cargoplus;Enlist=false;Persist Security Info=True;User ID=sa;Password=sa"

注释:

SqlConnection.ConnectionString 属性支持关键字 Enlist,该关键字指示 System.Data.SqlClient 是否将检测事务上下文并自动在分布式事务中登记连接。 如果 Enlist=true,连接将自动在打开的线程的当前事务上下文中登记。 如果 Enlist=false,SqlClient 连接不会与分布式事务进行交互。 Enlist 的默认值为 true。 如果连接字符串中未指定 Enlist,若在连接打开时检测到一个,连接将自动在分布式事务中登记。  
Server=(local)SQL2005;Database=Northwind;Integrated Security=SSPI;auto-enlist=false


 

原文地址:https://www.cnblogs.com/Byrd/p/2280427.html