我一直在项目中使用一个小文件管理器模块,其中一个文件夹列表显示在树视图中。我已经在javascript中做了所有的事情。每次我点击一个节点时,数据列表都会被提取到一个数据加载器并填充在前端。 但是当我在IIS中部署应用程序时,在大约18次后续点击后,IIS将暂停,我必须重新重置它。当我检查事件查看器时,我收到以下错误
异常类型:InvalidOperationException 异常消息:超时已过期。从池中获取连接之前经过的超时时间。这可能是因为所有池连接都在使用中并且达到了最大池大小。
因此,在web.config中的连接字符串中,我将池设置为True,最大池大小设置为200,问题解决了。
但我想知道以这种方式使用连接池大小是一个好习惯。或者我们如何阻止打开这么多连接。 谢谢!
答案 0 :(得分:6)
我认为发生的事情是你没有释放未使用的资源。更具体地说,您绝对必须在所有与数据库相关的对象上调用Dispose()
,例如SqlConnection
,SqlDataReader
等。或者,更好的是,将它们包装在using
语句中。 / p>
答案 1 :(得分:1)
SQL Server的示例连接字符串:
"Data Source=(local);Initial Catalog=pubs;User ID=sa;Password=;Max Pool Size=75;Min Pool Size=5;"
这样做可能会对你有所帮助:)。
最大泳池大小的默认值为100。 只要服务器的性能不是问题,您也可以将其设置为更高的数字。