最近在開發程序過程中,原本好好運行好的程序,突然出現以下錯誤:
Net SqlClient Data Provider thrown System.Data.SqlClient.SqlException在建立與服務器的連接時出錯。在連接到 SQL Server 2005 時,在默認的設置下 SQL Server 不允許進行遠程連接可能會導致此失敗。 (provider: TCP 提供程序, error: 0 - 由於系統緩沖區空間不足或隊列已滿,不能執行套接字上的操作。
錯誤很頻繁,機器的CPU很高。
分析:
1、程序未進行改動。沒有任何上線。
2、發現IIS鏈接數比之前增高。
分析是由於網站流量增大,增加IISweb園后,但是還是存在這樣問題。
網上查詢后,才知道,windows 2003對tcp的連接數做了限制,超多這個數目就會出現系統緩沖區空間不足或隊列已滿錯誤。
之后增加tcp鏈接數,修改注冊表如下:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "MaxUserPort" /d "65534" /t REG_DWORD /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "TcpTimedWaitDelay" /d "30" /t REG_DWORD /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "TcpNumConnections" /d "65534" /t REG_DWORD /f