【发布时间】:2018-01-31 14:23:01
【问题描述】:
此代码的预期行为是打开一个连接。然后连接返回到连接池并在第二个 open() 中重用。对吧?
但是当我对 SQL Server 2005 执行此代码时,第二个 open() 将事务转换为分布式事务。从这一刻起,我在服务器上看到了 2 个连接。第二个 open() 大约需要 3-4 秒。从此时起,仅使用第二个。第一个连接似乎被某种方式破坏了。
对于 SQL Server 2008 R2,正如预期的那样,只使用了一个连接。
有什么想法吗?谢谢!
using (var scope = new System.Transactions.TransactionScope())
{
var constring = @"Server=xxx;Integrated Security=true;Connect Timeout=10;";
using (var con = new SqlConnection(constring))
{
con.Open();
}
using (var con = new SqlConnection(constring))
{
con.Open();
}
scope.Complete();
}
【问题讨论】:
标签: c# sql-server transactions ado.net connection-pooling