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

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

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

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


当前回答

当我想在另一台PC上运行我的WinForms项目(包括使用SQL Server数据库,并且在我的PC上工作得很好)时,我也犯了同样的错误。问题出在我电脑的Windows防火墙上。我通过添加两条规则来解决这个问题。这是如何允许SQL Server通过Windows防火墙的整个过程:

打开“运行”,输入services.msc 查找用于SQL Server(实例名)和SQL Server Browser的服务。一次一个,右键单击,选择“属性”,复制路径到exe文件 然后打开防火墙。cpl,单击允许应用程序或添加规则,添加之前复制的路径(有一个步骤需要遵循),选中域和私有,取消选中公共。

这是YouTube的链接,你可以看到这个过程:允许SQL Server通过Windows防火墙

其他回答

当我想在另一台PC上运行我的WinForms项目(包括使用SQL Server数据库,并且在我的PC上工作得很好)时,我也犯了同样的错误。问题出在我电脑的Windows防火墙上。我通过添加两条规则来解决这个问题。这是如何允许SQL Server通过Windows防火墙的整个过程:

打开“运行”,输入services.msc 查找用于SQL Server(实例名)和SQL Server Browser的服务。一次一个,右键单击,选择“属性”,复制路径到exe文件 然后打开防火墙。cpl,单击允许应用程序或添加规则,添加之前复制的路径(有一个步骤需要遵循),选中域和私有,取消选中公共。

这是YouTube的链接,你可以看到这个过程:允许SQL Server通过Windows防火墙

我的问题开始于我试图将服务器从IIS Express更改为本地IIS(同时使用LocalDB)。

我正在使用LocalDB(用于开发目的),当我从本地IIS恢复到IIS Express时,Visual Studio已经将我的数据源从数据源=(LocalDB)\MSSQLLocalDB切换到数据源=.\SQLEXPRESS

错误的连接字符串

< add name = " DefaultConnection connectionString =“源代码=数据。\ SQLEXPRESS; AttachDbFilename = | DataDirectory | \ SurveyTestsDB。中密度纤维板;最初用户目录= SurveyTestsDB集成安全= True;例如= True” providerName =“系统数据。SqlClient " - >

正确的连接串

< add name = " DefaultConnection connectionString =“源代码=数据(LocalDb) \ MSSQLLocalDB; AttachDbFilename = | DataDirectory | \ SurveyTestsDB。中密度纤维板最初目录》中= SurveyTestsDB;集成安全= True”providerName =“系统数据。SqlClient " - >

希望这能帮助到一些人。

为什么这个错误是如此烦人和嘈杂,只是因为它可以发生在不同的情况。

我已经做了上面所有的方法,但还是很糟糕。所以,在向下浏览之前,确保你和我做了同样的事情。

也许我不能立即解决你的问题,但我可以给你指明一个方向或思路(最后滑下来的那个人)。我已经开始思考我的运行程序的错误发生后,我确保实例名是明确正确的,并设置我的数据库,以允许远程控制以下的方法。之后,我怀疑我的SQL连接代码片段发生了错误。

我的问题解决方案:

检查我的sqlconnection函数

单击以查看其配置

新建连接

选择你的服务器名

对我来说,思考在联系的过程中到底发生了什么是有效的。希望我的想法能引导你改正错误。

我必须运行SQL Server浏览器服务到SQL Server配置管理器。 如果没有这个,安装就不能发现新创建的服务。

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