这是我们正在得到的错误。 我们将应用程序和数据库服务器从32位移至x64。 Framework 2.0 Service Pack 2安装在服务器上。
超时过期。 在从池中获取连接之前已经超时。 发生这种情况的原因可能是因为所有连接池都在使用中,并且达到最大池大小。
这个错误可能意味着你没有closures你的ADO.Net连接。 仔细检查你的代码,确保你的ASP.Net代码中的所有SqlConnection对象都被明确地处理掉了。 您可以使用VB或C#代码中的块来完成此操作。 使用构造将自动closures和处理你的连接,当它超出范围…
// C# example using (var conn = new SqlConnection(myConnectString)) { conn.Open(); // your data access code here }
… 要么 …
' VB example Using conn As var = New SqlConnection(myConnectString) conn.Open() ' your data access code here End Using
你是否在连接string中指定了Connect Timeout =? 如果没有,你可能想要添加这个,并指定300秒,看看是否只需要更多的时间。 我相信默认是15秒。
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx
一旦我们在我们的生产环境中启动了一个相当大的Web服务集成,我的团队就有类似的问 我们没有发现任何连接的情况没有被closures,所以我们不得不断定连接实际上是需要的。 我仍然必须说,它提高连接池的最大尺寸的感觉反对谷物…为了节省一些谷歌search,这里是改变它的确切方法:
<connectionStrings> <add name="ConnString" connectionString="Data Source=IP; Initial Catalog=DBName;User ID=User; Password=Pass; Max Pool Size=200;" providerName="System.Data.SqlClient" /> </connectionStrings>
请注意:“ 最大池大小= 200; ”