ADO.NET 如何识别唯一的连接字符串

How does ADO.NET identify unique connection strings

我正在开发一个遗留应用程序,其中连接详细信息以加密格式存储在外部文件中。应用程序根据传递给 returns 连接字符串的函数 "GetConnectionString" 的某些关键字,在 运行 时间创建连接字符串。

在其中一个模块中,我想创建一个具有不同应用程序池大小的连接。同时,我想用不同的应用程序名称来区分源自该模块的连接。

但是,在 SQL 服务器分析器中,此模块建立的连接的应用程序名称与应用程序的其余部分相同。

ADO.NET在识别唯一连接时是否排除了连接池大小和应用程序名称?

技术上不排除任何内容。如果未在连接字符串中显式设置最小池大小或最大池大小,则使用默认值:

  • 最大池大小:池中允许的最大连接数。这 默认值为 100。
  • Min Pool Size:维护的最小连接数 水池。默认值为 0。

明确地说,池是根据唯一的连接字符串创建的。

根据 Docs:

池创建和分配

When a connection is first opened, a connection pool is created based on an exact matching algorithm that associates the pool with the connection string in the connection. Each connection pool is associated with a distinct connection string. When a new connection is opened, if the connection string is not an exact match to an existing pool, a new pool is created. Connections are pooled per process, per application domain, per connection string and when integrated security is used, per Windows identity. Connection strings must also be an exact match; keywords supplied in a different order for the same connection will be pooled separately.

添加连接

A connection pool is created for each unique connection string