2014-10-27 35 views
2

我的數據庫始終設置爲多用戶模式,我的連接字符串有選項mars = true,但在檢查數據庫錯誤日誌後,我經常可以看到此錯誤消息SQL Server數據庫設置多用戶模式並返回錯誤單用戶模式

服務器將丟棄連接,這是因爲客戶端驅動程序發送了多個請求會話處於單用戶模式。當客戶端發送重置連接的請求時,會話中仍有批處理仍在運行,或者客戶端在會話重置連接時發送請求時發生此錯誤。請聯繫客戶端驅動程序供應商。

我不知道是什麼我忘了更改激活多用戶模式....我嘗試激活多用戶模式,因爲是一個最好的建議,由其他用戶讀取一些後後

爲什麼我的會話處於單用戶模式?

有些朋友建議使用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用戶模式,我得到

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

回報MULTI_USER

我使用C#,實體框架4.X,SQL Server 2008中

感謝您的關注

+0

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

+2

這些是兩個完全分開的東西 - MARS是關於多個活動結果集,例如多個閱讀器(來自* single *連接)一次。多用戶模式意味着可以對數據庫進行多個連接。而且你需要**多用戶模式 ​​- 否則你的數據庫就沒用了! – 2014-10-27 15:59:46

+0

mixm - 我會嘗試主動異步處理thx。 marc_s - 你對MARS是對的,是的我的數據庫需要多用戶模式謝謝你的解釋 – tierrarara 2014-10-28 14:44:28

回答

0

幾天後錯誤日誌消失。移除該溶液MARS選項

我知道2種方式的設定這一選項: 在SQL管理管理員選擇數據庫 - >選項 - >在連接字符串中設置火星假

添加MultiActiveResultSet =假

謝謝你們的幫助 我的問題解決了

相關問題