连接到应用程序时出错

让我解释一下当前的情况。 我们在Intranet上运行的框架2(Windows 2003 Server和Sql Server 2000)上有一个asp.net应用程序。 现在我们有一台xp机器,在这台机器上我们安装并configuration了IIS,虚拟目录指向本地Xp机器,并且这台机器连接到了我们的内部networking。 我们已经将服务器的相同应用程序文件复制到这台XP机器上。 但事情是应用程序的连接string/数据库指向内部网服务器。 问题是当我们试图在XP机器上运行应用程序时,我们得到这个错误:

build立到服务器的连接时发生错误。 连接到SQL Server 2005时,这种失败可能是由于在默认设置下SQL Server不允许远程连接。 (提供程序:命名pipe道提供程序,错误:40 – 无法打开连接到SQL Server)

这个查询是关联还是关注这个站点或者stackoverflow?

Serverfault是这个问题的正确的地方。

错误消息非常明显:XP机器上的ASP无法连接到SQL Server 2000实例。 它使用命名pipe道协议找不到SQL 2000计算机。 这可能是由多种因素造成的:

  • WIND / DNSparsing,确保SQL 2000机器的名称在XP机器上parsing(XP主机上的nslookup <sqlhost> ),
  • IP路由问题,请确保从XP机器可以访问SQL 2000地址(从XP主机ping <sqlhost> ,不完全准确,但一个良好的开始)
  • IPSec问题,确保SQL 2000主机允许来自XP主机的TCP(在XP主机的SQL主机上的任何开放端口上的telnet,ping与IPSec无关)。
  • 命名pipe道SMB协议问题,请确保在两台机器上启用了“文件共享”协议端口(135,445)。 或者切换XP客户端堆栈以使用TCP协议,并确保SQL 2000正在侦听TCP协议(通过命名pipe道推荐),请参阅configuration客户端networking协议和SQL Servernetworking实用程序 。
  • 如果您selectTCP over Named Pipes,还要确保防火墙上允许SQL Server侦听端口。