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

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

服务器位于群集上,configuration了命名实例以响应静态端口1089。

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

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

正在使用的连接string如下所示:

Data Source = 1.2.3.4,1098; Network Library = DBMSSOCN; Initial Catalog = MyDatabase; user id = my_user_id; password = secret_stuff

Web服务器和SQL Server在不同的域上。 但是,我正在使用SQL身份validation。

如果我从一台普通的客户机连接,一切都像一个魅力。

有没有人遇到过这个问题? 我怎么能解决这个问题,或者至less要进一步调查这个问题?

看起来它试图在1.2.3.4地址做一个反向DNS,出于某种原因,可能是一个IIS设置,但它可能是别的东西。 如果将主机条目添加到SQL Server名称的c:\windows\system32\drivers\etc\hosts ,是否有所帮助?

如果这样做没有帮助,或者你只是想能够弄清楚在这种情况下发生了什么,一般来说你应该使用networking\数据包分析器。 Windowsnetworking监视器或WireShark都将在你的情况下做的伎俩。 这些并不是一个简单的工具,但是如果你捕捉一个展现你的问题的会话,你应该能够看到什么样的stream量立即出现在他们长时间的延迟之前,而且任何运气都能够根本解决问题。

在你说的“我正在使用SQL身份validation”的问题,但是如果服务器设置为允许集成和SQL身份validation,它可能会尝试做域查找。

检查服务器上的安全事件查看器,并查找用于身份validation的失败事件