代码改变世界

SQL Server 2000 sp4 与数据链接池

2007-01-28 15:43  晓风残月  阅读(...)  评论(...编辑  收藏
今天远程连接一台xp sp2上的SQL,报错信息:
Timeout expired.  The timeout period elapsed prior to obtaining a connection from the pool.  This may have occurred because all pooled connections were in use and max pool size was reached. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidOperationException: Timeout expired.  The timeout period elapsed prior to obtaining a connection from the pool.  This may have occurred because all pooled connections were in use and max pool size was reached.

Source Error: 


Line 2503:            cmd.CommandType = CommandType.StoredProcedure;
Line 2504:
Line 2505:            connection.Open();
Line 2506:            SqlCommandBuilder.DeriveParameters(cmd);
Line 2507:            connection.Close();
 

但是,我的连接字符串中已经设置了,最大链接池=200,应该是不可能全部被占用的。
当把链接池设置去掉,就报:
An error has occurred while establishing a connection to the server.  When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: An error has occurred while establishing a connection to the server.  When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

Source Error: 


Line 2503:            cmd.CommandType = CommandType.StoredProcedure;
Line 2504:
Line 2505:            connection.Open();
Line 2506:            SqlCommandBuilder.DeriveParameters(cmd);
Line 2507:            connection.Close();
 

这下子,问题就明朗了,典型的没有打 Sql2000 sp4 的问题,打上sp4问题解决,差点被误导。