我的数据库始终设置为多用户模式,我的连接字符串有选项mars = true
,但在检查数据库错误日志后,我经常可以看到此错误消息SQL Server数据库设置多用户模式并返回错误单用户模式
服务器将丢弃连接,这是因为客户端驱动程序发送了多个请求而会话处于单用户模式。当客户端发送重置连接的请求时,会话中仍有批处理仍在运行,或者客户端在会话重置连接时发送请求时发生此错误。请联系客户端驱动程序供应商。
我不知道是什么我忘了更改激活多用户模式....我尝试激活多用户模式,因为是一个最好的建议,由其他用户读取一些后后
为什么我的会话处于单用户模式?
有些朋友建议使用mars = false
和避免多用户模式
这是一个好主意吗?
连接字符串
<add name="BaseEntities"
connectionString="metadata=res://*/BaseModel.csdl|res://*/WMSModel.ssdl|res://*/BaseModel.msl;

provider=System.Data.SqlClient;provider connection string="Data Source=MyServer;
 Initial Catalog=MyDatabase;Persist Security Info=True;User ID=myuser;Password=mypassword;

MultipleActiveResultSets=True;Application Name=EntityFramework""
providerName="System.Data.EntityClient" />
后检查DB用户模式,我得到
SELECT user_access_desc
FROM sys.databases
WHERE name = 'MyDatabase'
回报MULTI_USER
我使用C#,实体框架4.X,SQL Server 2008中
感谢您的关注
Asynchronous Processing = True http://dba.stackexchange.com/questions/66200/how-to-troubleshoot-client-driver-has-sent-multiple-requests-while会话 – mxix 2014-10-27 15:51:53
这些是两个完全分开的东西 - MARS是关于多个活动结果集,例如多个阅读器(来自* single *连接)一次。多用户模式意味着可以对数据库进行多个连接。而且你需要**多用户模式 - 否则你的数据库就没用了! – 2014-10-27 15:59:46
mixm - 我会尝试主动异步处理thx。 marc_s - 你对MARS是对的,是的我的数据库需要多用户模式谢谢你的解释 – tierrarara 2014-10-28 14:44:28