从 IIS 到 SQL Server 2005 的本机客户端连接通过防火墙需要 30 多秒

从 IIS 到 SQL Server 2005 的本机客户端连接通过防火墙需要 30 多秒

我有一个 Web 服务器(IIS7/.NET 3.5 本机客户端),通过防火墙连接到 SQL 2005。

该服务器位于集群中,并配置了命名实例以响应静态端口 1089。

防火墙上打开了 TCP 端口 1433 和 1089,UDP 端口 1434 也打开了。

一旦建立连接,设置速度非常快(每个查询约 10 毫秒),但是建立第一个连接需要 37 秒!

使用的连接字符串如下:

数据源=1.2.3.4,1098;网络库=DBMSSOCN;初始目录=MyDatabase;用户ID=my_user_id;密码=secret_stuff

Web 服务器和 SQL 服务器位于不同的域中。但是,我使用的是 SQL 身份验证。

如果我从普通客户端机器连接,一切都会顺利进行。

有人遇到过这个问题吗?我该如何解决它,或者至少进一步调查这个问题?

答案1

看起来它出于某种原因试图对 1.2.3.4 地址执行反向 DNS,可能是 IIS 设置,但也可能是其他原因。如果c:\windows\system32\drivers\etc\hosts为 SQL 服务器名称添加主机条目,会有什么不同吗?

如果这没有帮助,或者您只是想弄清楚在这种情况下一般发生了什么,您应该使用网络\数据包分析器。Windows 网络监视器或者WireShark这两种方法都可以满足您的需求。这些工具并不易于使用,但如果您捕获了显示问题的会话,您应该能够看到在长时间延迟之前立即发生的流量,并且如果幸运的话,能够找到根本原因。

答案2

在问题中您说“我正在使用 SQL 身份验证”,但是如果服务器设置为允许集成和 SQL 身份验证,它可能会尝试进行域查找。

检查服务器上的安全事件查看器并查找身份验证失败事件

相关内容