使用这段代码的预期行为是打开一个连接,然后将该连接返回到连接池中并在第二个open()调用时重复使用。对吧?
但是当我对SQL Server 2005执行此代码时,第二个open()会将事务转换为分布式事务。从那时起,服务器上就会出现两个连接。而第二个open()需要大约3-4秒的时间。从这一点开始,只使用第二个连接,第一个连接似乎遇到了某些问题。
与之相比,SQL Server 2008 R2只使用一个连接,如预期所示。
有什么想法吗?谢谢!
但是当我对SQL Server 2005执行此代码时,第二个open()会将事务转换为分布式事务。从那时起,服务器上就会出现两个连接。而第二个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();
}