“超时从池中获取连接”
答
这种试图耗尽所有可用的连接后连接到数据库时,通常会发生。这篇关于Tuning Up ADO.NET Connection Pooling in ASP.NET Applications的文章应该解释如何解决您遇到的问题。这就是要说的事情:关闭所有SqlConnections,处理所有Sqldatasources,并增加最大池大小。
答
您是否记得在使用它们后关闭每个数据库连接?
答
在连接字符串,请确保您设置池=假
<connectionStrings>
<clear/>
<add
name="YourConnectionString"
connectionString="Server=localhost;Database=your_db;Uid=username; _
Pwd=password;pooling=false;" <---------------POOLING = FALSE
providerName="yourprovider"/>
</connectionStrings>
答
确保您使用的块为您创建的每个对象执行实现IDisposable:
using (var connection = new SqlConnection(connectionString)) {
using (var command = new SqlCommand(query, connection)) {
using (var reader = command.ExecuteReader()) {
while (reader.Read()) {
// do something with row
}
}
}
}
否则,当发生异常时,您将泄漏资源(包括连接)。
顺便说一句,在VB中,这是
Using connection As SqlConnection = New SqlConnection(connectionString))
...
End Using
但如果需要什么连接池? – CodeKiwi 2009-07-17 06:24:51