是否可以限制实体框架使用的连接数?

时间:2012-08-21 14:46:23

标签: sql-server entity-framework entity-framework-4 nopcommerce

我注意到在我们托管(使用实体框架)的NopCommerce网站上,如果我在网站上运行抓取工具(检查损坏的链接),它会使整个网络服务器脱机几分钟而没有其他托管网站回应。这似乎是因为实体框架打开了30多个数据库连接,每秒运行数百个查询(每页查看大约20-40个)。

我无法改变NopCommerce使用EF的方式(可能需要数周时间)或更改正在使用的EF版本,因此我可以通过限制它使用的并发连接数来减轻其对SQL Server的影响,托管在同一台服务器上的网站在数据库访问方面有更好的机会吗?

我理想的做法是将特定应用程序的并发数据库连接数限制为大约10个。

1 个答案:

答案 0 :(得分:0)

我认为您可以做的最好的事情是使用连接字符串中的Max Pool Size设置。这限制了连接池中的最大连接数,而我认为这意味着应用程序将使用的最大连接数。但我不确定的是,如果它无法从池中获取连接,它是否会导致异常。我从未试图以这种方式限制连接。

以下是关于可以放入ADO.NET连接字符串的设置的详细说明:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28v=vs.100%29.aspx

这里有关于“使用连接池”的更多内容:

http://msdn.microsoft.com/en-us/library/8xx3tyca%28v=vs.100%29.aspx