Windows Server 2003 和 Windows Server 2008 r2 中处理连接池的方式有何不同?

Windows Server 2003 和 Windows Server 2008 r2 中处理连接池的方式有何不同?

我们刚刚遇到了一个问题,我们的连接池被 SqlDataReaders 淹没,但是当我们在暂存环境中运行负载测试时,我们无法重现该问题。

我唯一能想到的是 2008 r2 和 2003 在处理连接池的方式上存在差异。

一旦我们将命令行为传递CommandBehavior.CloseConnectionExecuteReader方法,我们就能够阻止连接池泛滥。

我们的生产服务器暂时在 2003 服务器上运行,以处理 1.1 框架上的一些依赖项,但我们已删除这些依赖项,并且在这样做时,我们基本上重写了我们的 DAL,并且在注意到我们CommandBehavior的新 DAL 和旧 DAL 之间的这种差异后,我们将其插入到我们的新 DAL 中,一切又恢复正常。

我们计划将生产环境迁回 2008 服务器,只是我们需要处理一些短时间的限制。

与此同时,我需要解释一下为什么我们在生产环境中实施变更之前没有在负载测试中发现这个问题。这就是我在这里问这个问题的原因,因为我一直在谷歌搜索,但一直没能找到答案。

另一个可能产生影响的因素是,2003 服务器是 32 位机器,而 200 r2 服务器显然是 64 位机器。

相关内容