2

我注意到在我们托管的 NopCommerce 网站(使用实体框架)上,如果我在网站上运行爬虫(检查损坏的链接),它会使整个网络服务器离线几分钟,并且没有其他托管网站响应。这似乎是因为 Entity Framework 正在打开 30 多个数据库连接并每秒运行数百个查询(每个页面视图大约 20-40 个)。

我无法更改 NopCommerce 使用 EF 的方式(这需要数周时间)或更改正在使用的 EF 版本,所以我可以通过限制它使用的并发连接数来减轻它对 SQL Server 的影响,以提供托管的其他站点同一台服务器访问数据库的机会更大?

我最理想的做法是将特定应用程序的并发数据库连接数限制在 10 左右。

4

1 回答 1

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

于 2012-08-21T14:56:57.303 回答