【发布时间】:2013-09-08 07:59:23
【问题描述】:
我在 IIS 下部署了一个 Web 应用程序。它一直在出现超时错误,我相信我已经将问题追溯到没有正确处理 SQL 连接的代码。
这需要大量的手术来修复,所以至少在我可以正确使用 using 块完成实现和测试新代码之前,我决定将连接池的大小提高到天文数字。但这似乎没有帮助。我的连接字符串是:
数据源=MyServer;初始目录=MyDb;用户ID=MyUser;密码=MyPwd;最大池大小=10000
我的日志文件显示:
System.InvalidOperationException:超时已过期。在从池中获取连接之前超时时间已过。这可能是因为所有池连接都在使用中并且已达到最大池大小。
在此期间,我一直保持性能监视器处于打开状态,并且用户连接数最高达到 150 左右。所以我认为我们的连接数不会用完。
还有什么可能导致此错误?
【问题讨论】:
-
您可能 正在 最大化连接 - 可能在 服务器 端。您确实需要确保连接关闭,并且尽可能保持打开状态。
-
@Oded - 我认为 SQL Server 最多可以支持 32,768 个连接?还是我在做梦?
-
AFAIK,如果你配置它(服务器和数据库)
-
@Shaul:- 请检查您在哪里指定了设置超时字段的连接???"integrated security=SSPI;SERVER=YOUR_SERVER;DATABASE=YOUR_DB_NAME;Min Pool Size=5;Max Pool Size =10000;连接超时=60;"
-
@RahulTripathi - 我想我知道你在说什么,连接池要求连接字符串相同。但如果它们不相同,那只会导致更多个连接池,而不是更少,不是吗?
标签: c# iis-7 sql-server-2012