Ado.net (2.0+) 连接池是预应用域还是每个进程

Pre*_*gha 2 sql-server connection-pooling

我试图更好地理解 ADO.NET 和 SQL Server 之间交互的池化理论,但还没有找到明确的答案。我一直假设每个进程,但我突然想到它可能是每个 AppDomain。

任何深入的参考也将不胜感激。

adr*_*nks 5

连接池是一个复杂的野兽,因为它们是在几个不同的范围内创建的。根据MSDN 上的SQL Server 连接池

每个进程、每个应用程序域、每个连接字符串以及在使用集成安全性时,每个 Windows 身份都会对连接进行池化。连接字符串也必须完全匹配;为同一连接以不同顺序提供的关键字将被单独汇集。

这意味着根据建立连接的方式和位置,您可以在同一应用程序中拥有多个连接池。