我有一个通过防火墙连接到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的失败事件