c# - 关于 asp.net 中最大池大小的问题

标签 c# asp.net connection-pooling

我一直在一个项目中开发一个小型文件管理器模块,其中文件夹列表显示在 TreeView 中。我已经用 javascript 完成了整个事情。每次我单击一个节点时,数据列表都会被提取到数据读取器中并填充在前端。 但是当我在 IIS 中部署应用程序时,大约 18 次后续点击后,IIS 停止了,我必须再次重置它。当我检查事件查看器时,出现以下错误

Exception type: InvalidOperationException Exception message: 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.

所以在 web.config 的连接字符串中,我将池设置为 True 并将最大池大小设置为 200,问题就解决了。

但我想知道以这种方式使用连接池大小是否是一种好的做法。或者我们如何防止打开这么多连接。 谢谢!

最佳答案

我认为正在发生的事情是您没有释放未使用的资源。更具体地说,您绝对必须对所有与数据库相关的对象调用 Dispose(),例如 SqlConnectionSqlDataReader 等。或者,更好的是,将它们包装在 using 语句中。

关于c# - 关于 asp.net 中最大池大小的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6263530/

相关文章:

c# - http 错误 400。请求动词无效。 iis express 8

asp.net - Html.DropDownListFor 设置选中值

c# - 违反唯一索引,试图在新上下文中插入对象图

c# - 全局捕获后台线程中 WCF 异步调用引发的异常

c# - 本地主机连接错误

c# - 如何首先使用代码在已创建的数据库中创建 ASP.net 标识表?

java - 使用多个线程池和连接池

java - 获取连接池中的空闲连接数

java - 您将如何测试连接池

c# - 无法建立连接,因为目标机器主动拒绝 127.0.0.1