Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用实体框架的SQL池_Sql_Entity Framework_Connection Pooling - Fatal编程技术网

使用实体框架的SQL池

使用实体框架的SQL池,sql,entity-framework,connection-pooling,Sql,Entity Framework,Connection Pooling,我在多个应用程序上使用EntityFramework6。所有这些应用程序(大约10个)都使用相同的数据库。在某些情况下(我相信,当同时存在大量连接时),应用程序将无法工作,例外情况是“基础提供程序在打开时失败”。 我做了一些研究,发现entity framework的默认最大池连接数是100,所以在大多数应用程序中,我将这个数字增加到1000。 如果我让一个应用程序保留100个默认值,我的其他应用程序也会停止工作,这可能吗? 据我所知,entity framework会告诉SQL有多少连接可用,

我在多个应用程序上使用EntityFramework6。所有这些应用程序(大约10个)都使用相同的数据库。在某些情况下(我相信,当同时存在大量连接时),应用程序将无法工作,例外情况是“基础提供程序在打开时失败”。 我做了一些研究,发现entity framework的默认最大池连接数是100,所以在大多数应用程序中,我将这个数字增加到1000。 如果我让一个应用程序保留100个默认值,我的其他应用程序也会停止工作,这可能吗?
据我所知,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个连接