0

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

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

以下是对侦听器名称的 nslookup 的结果。据我在网上找到的,我们已经正确完成了所有操作,但连接仍然超时。非常感谢任何人可以提供的任何帮助。

更新:

通过消除过程,这似乎以某种方式与在开发人员机器上安装 Visual Studio 有关。

NS查找:

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

        }
    }
}
4

2 回答 2

0

我们实际上已经在上周发现了这个问题。

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

于 2013-05-23T00:36:41.637 回答
0

尝试将登录超时时间增加到 30 秒,然后查看连接是否成功。如果是这样,请记下连接需要多少秒。大约20-22秒吗?

您可以使用 SQLCMD.EXE 像这样测试:

sqlcmd -S 监听器 -E -M -l30

于 2013-05-22T21:18:09.107 回答