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

我们有运行在Windows 2008 R2上的MSSQL 2008 R2,它被运行asp.net的2台服务器2008 r2 webservers命中。 两者都join到活动目录域,并使用集成身份validation连接到SQL Server。 IIS应用程序池上有用户名/密码设置。 这在过去一年左右一直在完美地工作。

我们最近想要启动新的Web服务器,并configuration了一个运行完全相同的网站的新的Windows 2012 R2,并使用相同的用户名/密码configuration了IIS应用程序池。 当我进行testing时,该网站连接并工作得很好。 但是,只要我带来任何真正的负载到服务器上,我看到IIS开始挂起,并要求开始堆积。

我拿了一个内存转储,并使用新的DebugDiag 2.0分析,并看到请求挂在打开一个SQL连接:

这个线程试图打开一个数据库连接

连接string是数据源= 10.81.73.66;故障转移伙伴= 10.81.73.72;初始目录= XXXX;集成安全性= True;最大池大小= 6000;连接超时= 30;networking库= dbmssocn;应用程序名称= EntityFrameworkMUE和连接超时设置为30秒。

在分析中,我看到不less例外:

连接超时已过期。 尝试使用login前握手确认时超时。 这可能是因为login前握手失败或服务器无法及时回应。 尝试连接到主服务器时发生此故障。 试图连接到这个服务器的时间是[Pre-Login] initialization = 3342; 握手= 0;

任何想法什么尝试?

我们最终通过删除Integrated Security来解决环境中的问题,并在连接string中指定了用户标识和密码。 从来没有find根本原因。

保罗,

对于SQL服务器的IPv4地址而不是IPv6启用TCP / IP很有可能,并且您的新服务器正在尝试使用IPv6。

尝试在SQL服务器上启用IPv6。

在SQL Serverconfigurationpipe理器中

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