我一直在一个项目中开发一个小型文件管理器模块,其中文件夹列表显示在 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()
,例如 SqlConnection
、SqlDataReader
等。或者,更好的是,将它们包装在 using
语句中。
关于c# - 关于 asp.net 中最大池大小的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6263530/