如何在C#中从连接池有效地共享数据库连接对象?

时间:2011-11-18 05:46:15

标签: c# asp.net database c#-4.0

嗨,任何人都可以帮我找到如何从.net连接池有效地共享数据库连接对象。我是一个Web应用程序,我必须将连接池大小限制为一个特定数字(比如20个连接)。所以来自所有客户端浏览器的请求共享这20个连接。 我已经读过,如果超过20个请求同时出现,其余的请求将被迫等待,直到释放池中的任何连接。我可以有更好的方法来管理这种联系吗? 我的主要目标是在Web服务器中处理尽可能多的请求,而不会给数据库服务器带来太多重载。任何人都可以帮助我..

2 个答案:

答案 0 :(得分:6)

将根据连接字符串自动从池中提取连接,因此,如果您不为每个用户(或其他目的)更改连接字符串,则可以尽快重用池中的连接。你完成了一个(注意我正在描述池代码实现的行为,而不是你必须做或担心的任何事情)。

为了成功实现这一目标,您需要确保您的连接只在您需要时才开放,并且始终关闭(这是一般建议,而不仅仅针对您的情况)。

如果您发现自己遇到连接池限制,则可以捕获此错误,并告诉用户稍后再试,或者旋转一段时间并再次尝试连接。

答案 1 :(得分:1)

默认情况下,最大池大小为100,但如果要将此数字减少到20,则可以在连接字符串上指定它。

在连接字符串上使用这些参数:

Max Pool Size = 20
Pooling = True

您将池大小限制为20。

See here了解有关ConnectionString的更多详情。