1

我有一个使用实体框架连接到 SQL Server 数据库的 Visual Studio 2010 Web 项目。当我通过 VS2010 运行 32 位应用程序时,它使用 Visual Studio 开发服务器。运行应用程序后,我不时在 SQL Server 上使用“exec sp_who2”来查看来自服务器的数据库连接数,但它永远不会超过 6。这是预期的行为,因为正在使用连接池等重用的连接。

我从 IIS 7.5 运行完全相同的 32 位构建,并且在短时间内它达到 100 个连接池限制并停止工作。代码相同,数据库相同,因此唯一的区别是在 IIS 7.5 下运行,而不是在开发服务器下运行。我在连接字符串中启用了连接池。事实上,这两种情况下的连接字符串是相同的。

任何想法为什么连接池在 IIS 上不起作用?是的,我在连接字符串中有 pooling=true 。是的,当不再需要它们时,我会正确关闭所有连接。

更新:将最大池大小设置为 200 似乎允许 IIS 方案继续工作,因为它似乎没有超过 150。但是为什么开发服务器只需要大约 6 并且 IIS 版本需要大约 150 在池中. 他们都以相同的方式使用相同的数据库和相同的连接字符串。

4

0 回答 0