使用MultiSubnetFailover连接到SQL Server 2012 AlwaysOn组侦听器会导致超时

时间:2013-03-21 18:34:38

标签: .net ado.net sql-server-2012 windows-server-2012 alwayson

我们遇到一个奇怪的问题,当MultiSubnetFailover设置为true时,我们的开发人员无法连接到AlwaysOn可用性组侦听器。但是,客户端可以在尝试直接连接到组的主节点时进行连接。我们使用.Net 4.0.3以及使用.Net 4.0.3的Windows 7在Windows 8下使用下面的最小测试重现了这一点。和.Net 4.5。

我们还成功地让我们的登台服务器通过组Listener连接,以及使用sqlcmd和SMS使用MultiSubnetFailover标志连接到vip。所以看起来侦听器本身已正确配置。

以下是监听器名称上nslookup的结果。据我在网上找到,我们已经做好了一切,但连接仍然超时。任何人都可以提供的帮助非常感谢。

更新

通过消除过程,这似乎与某些方式相关,即在开发人员计算机上安装了Visual Studio。

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();

        }
    }
}

2 个答案:

答案 0 :(得分:0)

尝试将登录超时时间增加到30秒,然后查看连接是否成功。如果是这样,请记下连接所需的秒数。是20-22秒左右?

您可以使用SQLCMD.EXE对此进行测试:

sqlcmd -S listener -E -M -l30

答案 1 :(得分:0)

我们上周确实已经确定了这个问题。

事实证明这是运行Avast的开发机器创建的驱动程序问题!作为防病毒解决方案。我们无法找到阻止这种情况的神奇设置,所以我们不得不卸载Avast!并准备用另一种杀毒软件替换它。