我們最近使用遷移向導將我們的Web應用程序之一從2.0 .net Framework升級到4.0(VS 2010)。單個用戶測試時,該應用在較低的環境中運行良好。但是在將其部署到生產環境後,當少數用戶(大約20+)擊中應用程序時,我們看到大量錯誤,並顯示以下錯誤消息:Web應用程序升級到4.0 .Net Framework問題
超時已過期。在從池中獲取 連接之前已經超時。可能發生了這種情況,因爲所有連接池都正在使用中,並且已達到最大池大小。棧跟蹤=
在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(的DbConnection owningConnection)在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(的DbConnection outerConnection,DbConnectionFactory connectionFactory的)在 System.Data.SqlClient.SqlConnection.Open ()
注意,這個應用程序大量使用類型化的DataSet和我已經尋找任何連接的代碼對象明確地打開(通過類型化的DataSet不會),並沒有發現任何。
它不清楚爲什麼切換到4.0框架後出錯。我們回到2.0框架,事情平靜下來,所有超時錯誤消失。
無法使用soapUI
和LoadRunner
在較低的環境中重現它。
任何想法與2.0內部相比,4.0中可能有什麼不同,以及有關如何調試/解決此問題的任何指示。
聽起來就像你沒有在請求生命週期中正確地部署SQL連接。如果沒有仔細審覈數據庫層代碼,無法說明原因和地點。 –
代碼未隨升級而改變。相同的代碼適用於2.0框架。困擾我的是爲什麼它不適用於4.0框架。我相信,對於類型化的數據集,連接是在幕後完成的,並且在完成執行命令後應該處理。 – hillcountry99
「連接是在幕後進行的」 - 確保您*可以*這樣做,但我建議您在任何大小或複雜性的應用程序中明確控制代碼中的連接。這並不是真的會影響你的問題,但如果你這樣做,它可能會讓你更容易處理髮生的事情。 – peterG