我的应用程序是在ASP.NET 4上使用Server 2008 R2后端的。
连接字符串使用的是集成安全性。我想知道增加以下内容的好处:
池= true;最大池大小= N
在将Integrated设置为true时,在连接字符串中。
我要启用还是不启用?
编辑的
当未启用池时,在此问题中讨论的问题可能吗?
应用程序开始显示错误的数据,但在Server服务重新启动时进行更正。
编辑:
Web.Config文件包含以下行:
<add name="ConStringPWS" connectionString="Data Source=.;Initial Catalog=pWS;Integrated Security=True;" providerName="System.Data.SqlClient"/>
<identity impersonate="true" userName="Server\Administrator" password="xyz"/>发布于 2012-02-22 08:06:39
是的,我想我们应该启用连接池。(实际上,默认情况下,池是启用的,最大池大小为100)
据我所知,池与集成安全配置无关。
池连接将帮助您的应用程序在更好的性能和更好的可伸缩性领域。池是一种降低重复打开和关闭连接(物理)的成本的技术。
据我所知,要回答您的问题,如何检查池是否启用。我想这里有人能给你一个更好的答案。
SqlConnectionStringBuilder cnnBuilder = new SqlConnectionStringBuilder(yourConnection.ConnectionString);
bool isPooling = cnnBuilder.Pooling;发布于 2012-02-22 08:40:33
只有具有相同配置的连接才能池化。ADO.NET同时保存多个池,每个配置都有一个池。当使用集成安全性时,通过连接字符串和Windows标识将连接分离为池。连接也根据它们是否被登记在事务中进行池化。由于在集成安全模式下,您将以AppPool/worker进程的身份访问数据库(除非您使用的是模拟),所以使用(连接池)是非常重要的,因为对站点的所有请求基本上都将使用具有相同配置的连接。不合并它们将严重影响应用程序的性能。
发布于 2012-02-22 08:41:25
关键的池问题是,如果集成安全打开,并使用模拟-您的网站是这样吗?
在这种情况下,池不太可能有用,因为每个独立的用户最终都会有一个单独的池。
请参阅冒充/委派
请注意,如果您使用模拟标识访问下游数据库,则模拟会阻止连接池的有效使用。
https://stackoverflow.com/questions/9391007
复制相似问题