此代码的预期行为是一个连接被打开.然后连接返回到连接池并在第二个open()上重用.对?
但是,当我对SQL Server 2005执行此代码时,第二个open()将事务转换为分布式事务.我从这一刻开始看到服务器上的2个连接.而第二个打开()大约需要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();
}
Run Code Online (Sandbox Code Playgroud)