0

我有两个 Web 服务器,每个服务器都运行相同的 ASP 应用程序。这些 Web 服务器连接到同一个 SQL 服务器。其中一台服务器正在正常运行应用程序,但另一台服务器抛出以下错误:

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:28 - 服务器不支持请求的协议)

我对 web 服务器和 sql 服务器之间的流量进行了wireshark 捕获。在工作服务器上,流量使用 TCP。在非工作服务器上,我看到很多 UDP 流量,SQL 服务器不支持(考虑到错误消息,这很有意义)。使用的协议在哪里确定?每台服务器上的应用程序都是相同的,因此它不会是应用程序级别的配置问题。我不是网络人,所以我很茫然

谢谢,

约瑟夫

4

1 回答 1

0

您可以在连接字符串中设置“网络协议”。

值得一试。

通过 IP 地址连接

Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;

该连接字符串不完整,我正在显示相关部分。

该样本来自

http://www.connectionstrings.com/sql-server-2008

这篇文章很旧,但会解释网络库选项。

http://support.microsoft.com/kb/238949

最常见的两个(根据我的经验)是:

dbnmpntw - Win32 Named Pipes
dbmssocn - Win32 Winsock TCP/IP

编辑

另一个技巧是安装 PortQryUI,并将这个小实用程序放在“客户端”机器上……然后“戳”Sql Server,确保得到相同的结果。

http://www.microsoft.com/en-us/download/details.aspx?id=24009

这将有助于识别任何防火墙问题...在使用 sql server 客户端之外。

于 2013-08-20T14:58:10.473 回答