加载到 IIS Web 服务器后的 SQL Server 连接超时

Pau*_*mke 6 asp.net sql-server windows-server-2012

我们在 Windows 2008 r2 上运行 MSSQL 2008 R2,它被 2 个运行 asp.net 的服务器 2008 r2 网络服务器击中。两者都加入活动目录域并使用集成身份验证连接到 sql server。IIS 应用程序池上设置了用户名/密码。这在过去一年左右的时间里一直完美无缺。

我们最近想启动新的网络服务器,我配置了一个运行完全相同网站的新 Windows 2012 R2,并使用相同的用户名/密码配置了 IIS 应用程序池。当我进行测试时,该站点连接并运行良好。但是一旦我将任何真正的负载带到服务器上,我就会看到 IIS 开始挂起并且请求开始堆积。

我进行了内存转储并对其使用了新的 DebugDiag 2.0 分析,发现请求在打开 sql 连接时挂起:

此线程正在尝试打开数据库连接

连接字符串为 Data Source=10.81.73.66;Failover Partner=10.81.73.72;Initial Catalog=XXXX;Integrated Security=True;Max Pool Size=6000;Connect Timeout=30;Network Library=dbmssocn;Application Name=EntityFrameworkMUE 和连接超时设置为 30 秒。

在分析中,我看到了很多例外:

连接超时已过期。尝试使用登录前握手确认时超时时间已过。这可能是因为登录前握手失败或服务器无法及时响应。尝试连接到 Principle 服务器时发生此故障。尝试连接到此服务器所花费的持续时间是 - [Pre-Login] 初始化 = 3342;握手=0;

关于尝试什么的任何想法?

Dav*_*and 0

保罗,

很可能为 SQL 服务器的 IPv4 地址启用了 TCP/IP,但未启用 IPv6,并且您的新服务器正在尝试使用 IPv6。

尝试在 SQL Server 上启用 IPv6。

在 SQL Server 配置管理器中

  • 打开节点SQL Server网络配置
  • 单击 MYSQLINSTANCE 的协议
  • 在右侧,右键单击“TCP/IP”
  • 单击属性
  • 选择“IP 地址”选项卡
  • 对于每个列出的 IP 地址,确保“活动”和“已启用”均为“是”。