SQL 与 Entity Framework 合并

SQL Pooling with Entity Framework

我在多个应用程序中使用 entity framework 6。所有这些应用程序(大约 10 个)都使用相同的数据库。在某些情况下(当同时有很多连接时,我相信),应用程序将无法运行,例外是 "underlying provider failed on open"。 我做了一些研究,发现 entity framework 的默认最大池连接数是 100,所以我在大多数应用程序中将该数字增加到 1,000。 如果我将一个应用程序保留为默认值 100,我的其他应用程序也将停止工作,这是否可行? 据我了解,entity framework 告诉 SQL 有多少连接可用,但这些连接仅适用于应用程序还是通用的?

正如我所怀疑的那样,所有连接到同一个 sql 实例的应用程序都必须更改它的连接字符串以允许超过实体的框架默认连接数 (100)。

场景:

应用程序 1 和 2 的 MaxPoolSize = 1000。 应用程序 3 的 MaxPoolSize = 100.

应用程序 1 和 2 正在连接到 SQL,当前连接数为 200...一切正常。

应用程序 3 尝试与 SQL 建立连接,它的配置告诉 SQL 最大池大小仅为 100,因此 SQL 阻止池,直到连接超时并且不到 100。

换句话说,您必须确保所有 MaxPoolSize 都从默认值 100 更改以避免此问题,在这种情况下,我将它们全部更改为允许最多 1000 个连接。