尝试登录asp.net应用程序时出现以下错误。
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)
在我的web.config
文件中,连接字符串类似于
<add name="DefaultConnection"
connectionString="Server=1.1.1.1; Database=XYZ; Uid=user; Pwd=pswd;"
providerName="System.Data.SqlClient" />
Web和数据库服务器是分开的。同一个Web服务器上有其他网站指向同一个数据库服务器上的不同数据库,工作正常。
当我双击SQL Server 2008 R2中的用户名(安全性 - &gt;用户 - &gt;用户)时,出现以下错误:
我检查过SQL Server服务,运行正常。只是想知道在SQL Server中是否与该用户有任何关系。
答案 0 :(得分:0)
此错误与用户无关。检查以确保通过SQL Server配置管理器实用程序在SQL Server上启用远程连接,并在防火墙上打开端口1433。您可以使用TELNET或下面的Powershell命令测试端口连接。
1433 | % { echo ((new-object Net.Sockets.TcpClient).Connect("YourServerName",$_)) "server listening on TCP port $_" }
答案 1 :(得分:0)
命名管道协议(请参阅错误)仅适用于同一台计算机上的连接,这意味着(可能)在SQL Server上未启用 tcp / ip protocol 用于外部通讯。
该错误的另一个可能原因是sql server的命名实例;在您的连接字符串上,您将服务器的IP地址设置为没有实例名称(更好地使用机器名称并将IP放在DNS或hosts文件中),这意味着您的sql server没有命名实例是正确的?要检查命名实例,请参阅服务。
其他可能的问题可能是:
答案 2 :(得分:0)
我遇到了同样的问题,由于某种原因,我不得不添加标准SQL端口(1433),然后一切正常。在你的情况下:
<add name="DefaultConnection"
connectionString="Server=1.1.1.1,1433; Database=XYZ; Uid=user; Pwd=pswd;"
providerName="System.Data.SqlClient" />