当我尝试连接SQL Server时,我得到以下错误:

在建立与SQL Server的连接时,发生了与网络相关或特定于实例的错误。未找到服务器或无法访问服务器。验证实例名称是否正确,SQL Server是否配置为允许远程连接。(提供商:Named Pipes提供商,错误:40 -无法打开到SQL Server的连接)

当我试图在Visual Studio 2010中将数据库配置为gridview时抛出此错误。我不知道如何调试这个错误。

如何调试此错误?除了错误消息中提到的步骤之外,我还应该采取哪些步骤来确定这里到底发生了什么?


当前回答

我把安装Windows 7的工作笔记本电脑换成了安装Windows 10的工作笔记本电脑。 我已经在Windows 7上成功使用了SSMS2016。

使用SSMS2012或SSMS2016时也出现了同样的问题。 我使用windows身份验证访问10个SQL服务器的权限仍然相同。我可以在另一个服务器上测试。 但是,10个服务器中的2个无法从我的笔记本电脑连接。 两者都是ms SQL server 9,但我可以连接到另一个SQL server 9数据库。

解决方案是添加防火墙规则(使用带高级安全的Windows防火墙)。

为每个SSMS创建一个Incoming规则 例如C:\Program Files (x86)\Microsoft SQL Server\130\Tools\ bin \ManagementStudio\ sssm .exe

我不是网络专家,所以我没有包括细节,但希望它能给你指明正确的方向。


错误信息msg (pre防火墙规则) "在建立与SQL Server的连接时,发生了与网络相关或特定于实例的错误。未找到服务器或无法访问服务器。验证实例名称是否正确,SQL Server是否配置为允许远程连接。(提供者:SQL网络接口,错误:26 -错误定位指定的服务器/实例)(。Net SqlClient数据提供程序

其他回答

即使我使用了正确的凭证,我也面临着这种问题。请务必执行以下操作。

确保您的sql server凭据。在sql server字段中,您必须使用计算机名。

要找到计算机名称,在您的计算机上搜索计算机名称,然后就可以找到计算机名称。然后粘贴并尝试连接。

如果无法正常工作,请尝试从服务启动计算机上的sql server。下面的截图会有帮助。

azure vm用户

我已经尝试了上面所有的(所以这些仍然可能是有效的),但仍然没有wotk。

重要提示:我的只是一个游乐场服务器,所以安全性真的不是问题。所以你要做好调查,这只是一种变通方法,不是安全的方法。

确保可以ping通服务器。在我的情况下,我可以RDP,但不能ping我的服务器在Azure上。我的请求总是超时。因为似乎Azure默认阻止ICMP协议。

您可以在防火墙中添加规则。在我的例子中,无论我在那台机器上通过防火墙添加了什么,都没有任何改变。感谢@John的上述回答,这也提醒了我,我必须从Azure门户上的网络添加这个。

只要我为端口0添加了规则,我就可以远程连接了。

这个链接这个链接也很有用。

您可以测试以下方法。

a Check the connection string of the project. b Go to services and restart SQLServer Instance. c Open 'SQLServer Configuration Manager' In the left panel select 'SQLServer Network Configuration' and expanding it Select 'Protocols for MSSQLServer' In the right panel dbl click on 'TCP/IP' In the 'Protocol' tab set the 'Enabled' to 'Yes' In the 'IP Addresses' tab scroll to down In the 'IPAll' set 'TCP Port' to 1433 d Open 'Firewall with advanced security' In the right tab select 'Inbound Rules'

在中间选项卡找到“本地端口”是1433的记录,如果你找不到它,尝试用以下级别创建它

In the Start menu, click Run, type 'WF.msc', and then click OK In the left panel click the 'Windows Firewall with Advanced Security' In the right panel right-click 'Inbound Rules', and then click 'New Rule' In the Rule Type dialog box, select 'Port', and then click Next In the Protocol and Ports dialog box, select 'TCP', and select 'Specific Local Ports', and then type the port number 1433, Click Next In the Action dialog box, select Allow the connection, and then click Next In the 'Profile' dialog box, checking the Domain, Private and Public, Then click Next In the 'Name' dialog box, type 'SQL 1433 Port' and for a description write description for own. Then click Finish

Then in the middle tab double click the found item(Instance) or created item of 'SQL 1433 Port' name by you. Select 'Scope' tab in opened dialog box(SQL Server Properties) In the Local PC Go to google.com in your Browser and search 'My IP'. then copy of your 'IP' Go to the remote server and in the 'SQL Server Properties' dialog box of 'Scope' tab, in the 'Remote IP Address' select the 'These IP Addresses' option and click 'Add' button In the opened dialog box(IP Address) select 'This IP Address or Subnet' option and paste your 'IP', click OK button.

我将使用Entity Framework的项目设置为启动项目,然后运行update-database命令,解决了这个问题。

当我试图从其他网络访问mssql服务器时,我得到了解决方案:

Open "SQL Server Configuration Manager"

Now Click on "SQL Server Network Configuration" and Click on "Protocols for Name"

Right Click on "TCP/IP" (make sure it is Enabled) Click on Properties

Now Select "IP Addresses" Tab -and- Go to the last entry "IP All"

Enter "TCP Port" 1433

为1433端口添加入站+出站规则