SQL Server数据库设置为多用户模式并返回错误单用户模式

时间:2014-10-27 15:35:07

标签: c# sql-server multi-user

我的数据库始终设置为多用户模式,我的连接字符串有选项mars = true,但在检查数据库错误日志后,我经常可以看到此错误消息

  

服务器将断开连接,因为客户端驱动程序已发送多个请求,而会话处于单用户模式。当客户端在会话中仍在运行批处理时发送重置连接的请求时,或者在会话重置连接时客户端发送请求时,会发生此错误。请联系客户端驱动程序供应商。

我不知道忘记更改激活多用户模式的内容....我尝试激活多用户模式,因为在阅读其他用户发布的帖子后这是最好的推荐

为什么我的会话处于单用户模式?

有些朋友建议使用mars = false并避免使用多用户模式

这是个好主意吗?

连接字符串

<add name="BaseEntities"

connectionString="metadata=res://*/BaseModel.csdl|res://*/WMSModel.ssdl|res://*/BaseModel.msl;&#xD;&#xA; 
     provider=System.Data.SqlClient;provider connection string=&quot;Data Source=MyServer;&#xD;&#xA; Initial Catalog=MyDatabase;Persist Security Info=True;User ID=myuser;Password=mypassword;&#xD;&#xA;         
     MultipleActiveResultSets=True;Application Name=EntityFramework&quot;"
     providerName="System.Data.EntityClient" />

检查db user-mode后我得到

SELECT user_access_desc 
FROM sys.databases 
WHERE name = 'MyDatabase'

返回MULTI_USER

我使用C#,Entity Framework 4.X,SQL Server 2008

感谢您的关注

1 个答案:

答案 0 :(得分:0)

几天后,错误日志消失了。该解决方案已被删除MARS选项

我知道设置此选项的两种方法: 在SQL管理管理员选择数据库 - &gt;选项 - &gt;将Mars设置为false

连接字符串中的

添加MultiActiveResultSet = false

谢谢你们的帮助 我的问题解决了