Asp.net 使用集成安全性添加Pooling=True会产生什么后果?
我的应用程序位于ASP.NET 4上,带有SQL Server 2008 R2后端 连接字符串正在使用集成安全性。我想知道添加以下内容的好处: 池=真; 最大池大小=N 当集成安全设置为true时,在连接字符串中 我能不能启用它 已编辑 当未启用池时,是否可能出现此问题中讨论的问题 编辑: Web.Config文件包含以下行:Asp.net 使用集成安全性添加Pooling=True会产生什么后果?,asp.net,sql-server,sql-server-2008-r2,Asp.net,Sql Server,Sql Server 2008 R2,我的应用程序位于ASP.NET 4上,带有SQL Server 2008 R2后端 连接字符串正在使用集成安全性。我想知道添加以下内容的好处: 池=真; 最大池大小=N 当集成安全设置为true时,在连接字符串中 我能不能启用它 已编辑 当未启用池时,是否可能出现此问题中讨论的问题 编辑: Web.Config文件包含以下行: <add name="ConStringPWS" connectionString="Data Source=.;Initial Catalog=pWS;Inte
<add name="ConStringPWS" connectionString="Data Source=.;Initial Catalog=pWS;Integrated Security=True;" providerName="System.Data.SqlClient"/>
<identity impersonate="true" userName="Server\Administrator" password="xyz"/>
是的,我认为我们应该启用连接池。 (实际上,默认情况下启用池,最大池大小为100) 据我所知,池与集成安全配置无关 池连接将有助于您的应用程序在更高的性能和更好的可扩展性方面发挥作用。池是一种降低重复打开和关闭连接(物理)成本的技术 据我所知,要回答您的问题,如何检查池是否启用。 我想这里有人能给你一个更好的答案
SqlConnectionStringBuilder cnnBuilder = new SqlConnectionStringBuilder(yourConnection.ConnectionString);
bool isPooling = cnnBuilder.Pooling;
根据:
只能共用具有相同配置的连接。ADO.NET同时保留多个池,每个配置一个池。使用集成安全性时,连接按连接字符串和Windows标识分隔为池。连接也基于它们是否在事务中登记而进行池化。
由于在集成安全模式下,您将以AppPool/worker进程的身份访问数据库(除非您使用模拟),因此使用连接池非常重要,因为对站点的所有请求基本上都将使用具有相同配置的连接。不合并它们将对应用程序性能产生严重影响
密钥池问题是,如果启用了集成安全性,并且使用了模拟-您的站点是这样的吗 在这种情况下,池不太可能有用,因为每个独立用户最终将拥有一个单独的池 见: 请注意,如果使用模拟标识访问下游数据库,则模拟会阻止连接池的有效使用
有没有办法检查是否启用了池?我更新了上面的评论。我希望这会有所帮助。我不确定这种方式是检查池的最佳方式。更新了我上面的帖子。请查看链接。请查看我的最新帖子。我同时使用集成安全性和模拟。另外,请参阅我讨论过这个问题的链接。我认为连接池与另一个论坛上提出的问题无关——这听起来更像是不恰当地使用了全局/静态/共享对象——因为它听起来更像是使用了错误的结果集。