.net 使用多子网故障切换连接到SQL Server 2012 AlwaysOn组侦听器会导致超时
我们遇到了一个奇怪的问题,当MultiSubnetFailover设置为true时,我们的开发人员无法连接到AlwaysOn可用性组侦听器。但是,当尝试直接连接到组的主节点时,客户端可以进行连接。我们在使用.Net 4.0.3的windows 8和使用.Net 4.0.3的windows 7上通过下面的最低测试条件复制了这一点。和.NET4.5 我们还成功地让暂存服务器通过组侦听器连接,并使用sqlcmd和SMS使用MultiSubnetFailover标志连接到vip。这样看来,侦听器本身的配置是正确的 下面是对侦听器名称的nslookup的结果。就我在网上所能找到的,我们已经做了所有正确的事情,但是连接仍然超时。非常感谢任何人能提供的任何帮助 更新:.net 使用多子网故障切换连接到SQL Server 2012 AlwaysOn组侦听器会导致超时,.net,ado.net,sql-server-2012,windows-server-2012,alwayson,.net,Ado.net,Sql Server 2012,Windows Server 2012,Alwayson,我们遇到了一个奇怪的问题,当MultiSubnetFailover设置为true时,我们的开发人员无法连接到AlwaysOn可用性组侦听器。但是,当尝试直接连接到组的主节点时,客户端可以进行连接。我们在使用.Net 4.0.3的windows 8和使用.Net 4.0.3的windows 7上通过下面的最低测试条件复制了这一点。和.NET4.5 我们还成功地让暂存服务器通过组侦听器连接,并使用sqlcmd和SMS使用MultiSubnetFailover标志连接到vip。这样看来,侦听器本身的配
Non-authoritative answer:
Name: sql02
Address: 10.101.2.222
Name: sql02
Address: 10.101.1.222
Name: sql02
Address: 10.101.0.222
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var connection = new SqlConnection(@"
Data Source = sql02;
Initial Catalog = test;
Integrated Security = True;
MultiSubnetFailover = True;
MultipleActiveResultSets = True;
Max Pool Size = 512;");
connection.Open();
}
}
}
通过消除过程,这似乎在某种程度上与在开发人员机器上安装VisualStudio有关
NSLookup:
Non-authoritative answer:
Name: sql02
Address: 10.101.2.222
Name: sql02
Address: 10.101.1.222
Name: sql02
Address: 10.101.0.222
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var connection = new SqlConnection(@"
Data Source = sql02;
Initial Catalog = test;
Integrated Security = True;
MultiSubnetFailover = True;
MultipleActiveResultSets = True;
Max Pool Size = 512;");
connection.Open();
}
}
}
最小测试用例:
Non-authoritative answer:
Name: sql02
Address: 10.101.2.222
Name: sql02
Address: 10.101.1.222
Name: sql02
Address: 10.101.0.222
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var connection = new SqlConnection(@"
Data Source = sql02;
Initial Catalog = test;
Integrated Security = True;
MultiSubnetFailover = True;
MultipleActiveResultSets = True;
Max Pool Size = 512;");
connection.Open();
}
}
}
尝试将登录超时增加到30秒,看看连接是否成功。如果是,请记下连接需要多少秒。大约20-22秒 您可以使用SQLCMD.EXE进行如下测试:
sqlcmd-S listener-E-M-l30实际上,我们已经在上周发现了这个问题 原来这是运行Avast的开发机器造成的驱动程序问题!作为防病毒解决方案。我们无法找到阻止这种情况发生的魔法设置,因此我们不得不卸载Avast!并将用另一个防病毒软件取代它