我追蹤庫中的一個錯誤,我沒有自己寫。在ASP.NET中使用此庫時,我得到db連接錯誤,因爲當使用相同的連接字符串打開第二個連接時,SQLConnection似乎會關閉。使用相同的連接字符串打開兩個SQLConnections
這是記錄的行爲?可以使用相同的連接字符串打開新的SQLConnection關閉另一個SQLConnection對象嗎?
從調試,這似乎是我的問題最可能的原因,但我無法找到任何網絡上支持我的理論。
我追蹤庫中的一個錯誤,我沒有自己寫。在ASP.NET中使用此庫時,我得到db連接錯誤,因爲當使用相同的連接字符串打開第二個連接時,SQLConnection似乎會關閉。使用相同的連接字符串打開兩個SQLConnections
這是記錄的行爲?可以使用相同的連接字符串打開新的SQLConnection關閉另一個SQLConnection對象嗎?
從調試,這似乎是我的問題最可能的原因,但我無法找到任何網絡上支持我的理論。
不,會發生的是,當您調用SqlConnection.Open()
方法時,即使使用相同的連接字符串參數,它也會執行以下兩項操作之一:重新使用池中未使用的連接或創建新連接。無論哪種方式,您都將導致SQL Server的非衝突SPID。
簡而言之,使用相同的連接字符串打開新的連接將不會關閉您的現有連接。但是...通過創建對新連接的新引用來重用已經存在的對象將會破壞連接。
這是記錄的行爲?
號
可以打開具有相同的連接字符串的新的SQLConnection關閉另一個SQLConnection對象?
號
需要注意的是,除非你已經修改了設置,SQL Server允許32,767個併發連接。但即使如此,這也不能解釋你所看到的行爲。
找到這個的簡單方法是對new這個詞做一個搜索,它可能會被再次創建..這個連接可以是一個屬性或靜態字符串,通過代碼打開和關閉..只創建一次..或添加代碼將檢查Connection.State ..郵政編碼,您正在創建它..以及它正在關閉或連接狀態關閉的代碼 – MethodMan 2011-12-19 14:56:27
這應該可以正常工作。該問題更可能是跨請求重新使用連接。 – SLaks 2011-12-19 14:58:55
@DJ KRAZE:我已經找到使用同一個連接字符串打開第二個連接的部分。正如我寫的,我想知道它是否正常,這關閉了第一個連接。 – magnattic 2011-12-19 14:59:04