使用实体框架的SQL池
我在多个应用程序上使用EntityFramework6。所有这些应用程序(大约10个)都使用相同的数据库。在某些情况下(我相信,当同时存在大量连接时),应用程序将无法工作,例外情况是“基础提供程序在打开时失败”。 我做了一些研究,发现entity framework的默认最大池连接数是100,所以在大多数应用程序中,我将这个数字增加到1000。 如果我让一个应用程序保留100个默认值,我的其他应用程序也会停止工作,这可能吗?使用实体框架的SQL池,sql,entity-framework,connection-pooling,Sql,Entity Framework,Connection Pooling,我在多个应用程序上使用EntityFramework6。所有这些应用程序(大约10个)都使用相同的数据库。在某些情况下(我相信,当同时存在大量连接时),应用程序将无法工作,例外情况是“基础提供程序在打开时失败”。 我做了一些研究,发现entity framework的默认最大池连接数是100,所以在大多数应用程序中,我将这个数字增加到1000。 如果我让一个应用程序保留100个默认值,我的其他应用程序也会停止工作,这可能吗? 据我所知,entity framework会告诉SQL有多少连接可用,
据我所知,entity framework会告诉SQL有多少连接可用,但这些连接是仅用于应用程序还是通用的?正如我所怀疑的,所有连接到同一SQL实例的应用程序都必须更改其连接字符串,以允许多于entity的framework默认连接(100) 情景: 应用程序1和2的MaxPoolSize=1000。 应用程序3的MaxPoolSize=100 应用程序1和2正在连接到SQL,当前连接数为200。。。一切正常 应用程序3尝试建立到SQL的连接,它的配置告诉SQL最大池大小只有100,所以SQL会阻止池,直到连接超时并且小于100 换句话说,您必须确保将所有MaxPoolSize从默认值100更改为避免此问题,在本例中,我将所有MaxPoolSize都更改为允许最多1000个连接