用VS2005+SQLSERVER2008開發C/S的程序,程序上線運行一段時間之後發現在某些功能偶爾出現如下的錯誤:
在向服務器發送請求時發生傳輸級錯誤。 (provider: TCP 提供程序, error: 0 - 遠程主機強迫關閉了一個現有的連接。) ---> System.Data.SqlClient.SqlException: 在向服務器發送請求時發生傳輸級錯誤。 (provider: TCP 提供程序, error: 0 - 遠程主機強迫關閉了一個現有的連接。)
開始一直以爲是網絡連接的問題,最後發現是數據庫連接字符串的問題。
之前的數據庫連接字符串爲:
"server= server ;database=database ;uid= uid ;pwd= pwd ";
後來修改爲:
"server= server ;database=database ;uid= uid ;pwd= pwd;pooling=false ";
加了pooling=false 這個設置,就解決OK了!
=======================================
問題是由於.net跟sql server 2000進行連接得時候,某個連接池等資源已經用盡了,或者說是達到了最大得連接數,因此我們在出現錯誤得前面加上一句話: SqlConnection.ClearAllPools() 然後一切就ok了!!! |