0

我目前正在將MS支持的Web應用程序從MS Access移植到SQL Server(Express,暫時)。雖然預計提高了數據庫的可用性,但在連接時出現超時錯誤消息「無法及時獲得連接池」(對不起,原始錯誤消息是德文,所以我只是解釋它)。sql server express:在單個用戶的開發人員計算機上沒有可用池連接

這是發生在我是機器上唯一的用戶,只測試代碼。即使考慮到我已經放棄了一些處決,並且可能有一些連接,我無法想象我已經達到了100個連接池的大小。另外,我仍然可以從管理工作室運行查詢。我該如何去了解數據庫有什麼問題?另外,我沒有在活動監視器中看到關於池狀態的信息......有幫助嗎?

回答

2

您正在離開某個地方的連接。如果每次使用數據庫連接都包含在using語句中,那麼最好保證它們在不再使用時被關閉/處理。

不知道你使用的是什麼數據訪問層,我不能建議具體的代碼。

+0

我想我低估了關閉和配置連接的重要性。我瀏覽了所有代碼並使用語句插入。結果現在錯誤消失了。 也許是一個後續問題:對於某些數據綁定代碼,我曾經在一個實例變量中存儲連接,然後在事件處理程序中使用該連接並在數據綁定後關閉連接。爲了安全起見,我現在在任何地方都使用使用...構造,即有時當我顯示50個項目時,我打開和關閉/處理連接50次。這個操作在ASP.NET/MSSQL中真的有多貴? – Nicolas78 2011-06-15 09:12:29

+0

@Nicolas - 假設你沒有改變任何設置,ADO.NET將執行「連接池」 - 其中與SQL Server的實際網絡連接保持打開狀態並重用於服務每個「SqlConnection」對象 - 前提是這些對象是關閉的及時在下一個被打開之前。否則,可能需要2或3個「物理」連接 - 但它仍然不會接近您打開和關閉的「SqlConnection」對象的數量。 – 2011-06-15 09:17:50

相關問題