开始事务时出现 SqlServer.Management.SMO.Server 错误
Posted
技术标签:
【中文标题】开始事务时出现 SqlServer.Management.SMO.Server 错误【英文标题】:SqlServer.Management.SMO.Server error when beginning transaction 【发布时间】:2012-04-02 09:34:22 【问题描述】:使用 SMO 时出错。这段代码一直在 VB.Net 4 中运行,刚刚移到 C# 中,现在无法运行。
Microsoft.SqlServer.Management.Smo.Server server = new Microsoft.SqlServer.Management.Smo.Server(
new Microsoft.SqlServer.Management.Common.ServerConnection(
new System.Data.SqlClient.SqlConnection(connStr.ToString())));
server.ConnectionContext.Connect();
server.ConnectionContext.BeginTransaction(); // error here
错误是:
在 MARS 批处理中启动的事务在批处理结束时仍处于活动状态。事务被回滚。
除了 SMO 之外,没有其他与数据库的连接。
连接字符串为:
Data Source=MYPC\SqlServer;Initial Catalog=mytestdb;Integrated Security=True;User ID=;Password=;MultipleActiveResultSets=True
有没有人在使用 SMO 时看到过这个错误并知道是什么原因造成的?
【问题讨论】:
您是否尝试过禁用 MARS (MultipleActiveResultSets=False)? 我猜禁用 MARS 会解决这个问题,但我讨厌在代码开始工作之前更改设置。 从连接字符串中删除 MARS 解决了问题。 【参考方案1】:从连接字符串中删除 MARS 解决了问题。
【讨论】:
这不是解决办法。 MARS 的存在是有充分理由的,因此您可以在同一连接上并行运行多个批次。以上是关于开始事务时出现 SqlServer.Management.SMO.Server 错误的主要内容,如果未能解决你的问题,请参考以下文章
在 Google App Engine 开发服务器中组合 --backends 和事务性任务队列时出现问题?
Hibernate 和 Spring:尝试创建事务时出现异常
有些交易有效,有些则无效。处理事务时出现 UnhandledPromiseRejectionWarning 和 VM 异常