为什么我会收到“无法连接到服务器 - 与网络相关或特定于实例的错误”?

时间:2013-08-05 14:25:41

标签: sql-server visual-studio azure azure-virtual-machine

尝试连接到SQL Server时出现以下错误:

  

无法连接到108.163.224.173。

     

网络相关或   建立连接时发生特定于实例的错误   SQL Server。

     

找不到服务器或无法访问服务器。校验   实例名称正确且SQL Server配置为   允许远程连接。

     

(提供者:命名管道提供者,错误:40 -   无法打开与SQL Server的连接)(Microsoft SQL Server,   错误:1326)

当我尝试在Visual Studio 2010中将数据库配置为gridview时抛出此错误。我对如何调试此错误感到茫然。

您如何调试此错误?除了错误消息中提到的那个之外,我应该采取哪些步骤来确定这里真正发生的事情?

40 个答案:

答案 0 :(得分:270)

我发现以下技术很有用:

  1.   

    确保您的数据库引擎配置为接受远程连接

         
        
    • 开始>所有程序> SQL Server 2005>配置工具> SQL Server表面区域配置
    •   
    • 单击服务和连接的表面区域配置
    •   
    • 选择遇到问题的实例>数据库引擎>远程连接
    •   
    • 启用本地和远程连接
    •   
    • 重启实例
    •   
  2.   

    对于您正在使用的SQL Server实例和端口,您可能需要在防火墙上创建例外

         
        
    • 开始>运行> FIREWALL.CPL
    •   
    • 点击例外标签
    •   
    • 添加sqlservr.exe(通常位于C:\Program Files (x86)\Microsoft SQL Server\MSSQL.x\MSSQL\Bin,检查安装的实际文件夹路径)和端口(默认为1433
    •   
    • 检查您的连接字符串
    •   
  3.   

    检查 SQL服务器服务是否正常运行

         
        
    • 转到所有程序> Microsoft SQL Server 2008>配置工具> SQL Server配置管理器> SQL Server服务
    •   
    • 检查以确保SQL Server服务状态正在运行。
    •   
         

    此外,请确保远程服务器位于同一网络。运行sqlcmd -L以确定您的服务器是否包含在网络列表中。

  4.   

    在SQL Server配置中启用TCP / IP

         

    当两个或多个SQL Server通过网络连接时,它们使用TCP / IP进行所有通信。 SQL Server安装的默认端口是1433.可以通过SQL Server配置管理器更改此端口。应启用TCP / IP以连接SQL Server。

         
        
    • 转到所有程序>> Microsoft SQL Server 2008>>配置工具>> SQL Server配置管理器>>选择TCP / IP
    •   
    • 右键单击TCP / IP>>单击“启用”
    •   
         

    必须重新启动SQL Server服务才能使所有更改生效。右键单击并转到菜单属性,选择可以更改SQL Server默认端口的位置。

答案 1 :(得分:105)

我找到了解决方案:

  

打开" SQL Server配置管理器"

     

现在点击" SQL Server网络配置"并单击" 名称的协议"

     

右键单击" TCP / IP" (确保它已启用)单击“属性”

     

现在选择" IP地址"选项卡 - 并且 - 转到最后一个条目" IP All"

     

输入" TCP端口" 1433。

     

现在重新启动" SQL Server .Name。"使用" services.msc" (winKey + r)

它会起作用......

答案 2 :(得分:79)

添加我大量赞成的comment作为截图的答案。

我花了很多时间在这上面,最后对我有用的是:

1)打开 Sql Server配置管理器 - > SQL Server网络配置 - > <(INSTANCE)> 的协议 - > TCP / IP (双击它)。

enter image description here

2)选择 - > IP地址(标签)

3)转到最后一个条目 IP全部并提及 TCP端口1433

enter image description here

4)按 Win + R 并输入 services.msc

5)现在重新启动 SQL Server<(INSTANCE)>

enter image description here

在此之后,问题得到了解决!

答案 3 :(得分:77)

我通过打开服务然后开始运行 Sql Server(Sqlexpress)服务解决了这个问题。

service Image

答案 4 :(得分:16)

此错误主要发生在SQL服务停止时。您需要重新启动服务。要转到此窗口,您必须搜索此类服务 - enter image description here

然后搜索SQLSERVER(MSSQLSERVER)并重新启动服务。

enter image description here

希望这会奏效。

答案 5 :(得分:13)

window + R (Run window Open),然后在运行窗口中输入"services.msc"并打开新服务,查找SQL SERVER(SQLEXPRESS)服务开始,然后再试一次,它对我有用。希望它也为你工作。enter image description here

答案 6 :(得分:13)

如果您使用的是Express Edition

在服务器名称

之后添加"\SQLEXPRESS"

e.g。 "MY-SERVER\SQLEXPRESS"

enter image description here

答案 7 :(得分:10)

如果上述解决方案都不起作用(对我没用),那么只需重新启动计算机即可连接到sql server(localhost)。

答案 8 :(得分:10)

当我想在另一台PC上运行我的WinForms项目(包括使用SQL Server数据库并且在我的PC上运行完美)时,我遇到了同样的错误。问题出在我PC上的Windows防火墙中。我通过添加两个规则解决了这个问题这是如何通过Windows防火墙允许SQL Server的整个过程:

  1. 打开“运行”并输入services.msc
  2. 查找SQL Server(实例名称)和SQL Server Browser的服务。一次一个,右键单击,选择“属性”,将路径复制到exe文件
  3. 然后打开firewall.cpl,点击允许应用程序或添加规则,添加以前复制的路径(您需要遵循的程序),选中域和私人,取消选中公共。
  4. 这是YouTube链接,您可以在其中看到此过程:Allow SQL Server through Windows Firewall

答案 9 :(得分:7)

做完这里提到的一切后:
http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a-connection-to-sql-server-microsoft-sql-server-error/ 仍然没有为我工作。

步骤对我有用:

Start > Run > cmd > sqlcmd -L

它会提示您输入服务器名称。确保此服务器名称与您尝试连接到SQL Management Studio的CONNECT TO SERVER框中的服务器名称相同。

我犯了这个愚蠢的错误,我继续使用MSSQLSERVER而不是使用此服务器名称。

希望这对像我这样犯愚蠢错误的人有所帮助。

感谢。

答案 10 :(得分:6)

我遇到了同样的问题 就我而言,我以这种方式解决了问题

步骤1:从开始菜单转到SQL Server配置管理器

第2步:启用TCP / IP

enter image description here

第3步:双击“ TCP / IP”并转到“ IP地址”最后一项,输入IP ALL,然后输入TCP端口1433,然后应用

enter image description here

步骤4:然后按win + r并编写services.msc,打开“服务”,然后向下滚动,然后右键单击SQL Server(MSSQLSERVER),选择“重新启动”

enter image description here

那解决了我的问题。 即使执行上述所有步骤均不能解决问题,则只需重新启动PC,然后希望它可以工作。

答案 11 :(得分:5)

  

我使用的是SQL Server 2016和Window 10.

enter image description here

首先是允许远程连接到SQL Server。 我所做的是在开始菜单中键入 sqlservermanager13.msc 以打开SQL Server配置管理器。确保已启用TCP / IP状态。 enter image description here

双击TCP / IP协议名称检查TCP端口号。通常默认为1433。

enter image description here

以下过程使用具有高级安全性的Windows防火墙Microsoft管理控制台(MMC)管理单元配置Windows防火墙。具有高级安全性的Windows防火墙仅配置当前配置文件。

  

在Windows防火墙中打开TCP访问端口

     
      
  1. 在“开始”菜单上,单击“运行”,键入WF.msc,然后单击“确定”。
  2.   
  3. 在具有高级安全性的Windows防火墙的左窗格中,右键单击“入站规则”,然后在操作窗格中单击“新建规则”。
  4.   
  5. 在“规则类型”对话框中,选择“端口”,然后单击“下一步”。
  6.   
  7. 在“协议和端口”对话框中,选择“TCP”。选择“特定本地端口”,然后键入该实例的端口号   数据库引擎,例如1433用于默认实例。单击“下一步”。
  8.   
  9. 在“操作”对话框中,选择“允许连接”,然后单击“下一步”。
  10.   
  11. 在“配置文件”对话框中,选择要在其中连接时描述计算机连接环境的任何配置文件   单击“数据库引擎”,然后单击“下一步”。
  12.   
  13. 在“名称”对话框中,键入此规则的名称和说明,然后单击“完成”。
  14.   

要配置的另一件事。

  

使用动态端口时打开对SQL Server的访问

     
      
  1. 在“开始”菜单上,单击“运行”,键入WF.msc,然后单击“确定”。
  2.   
  3. 在具有高级安全性的Windows防火墙的左窗格中,   右键单击“入站规则”,然后单击操作中的“新建规则”   窗格中。
  4.   
  5. 在“规则类型”对话框中,选择“程序”,然后单击“下一步”。
  6.   
  7. 在“程序”对话框中,选择“此程序路径”。单击“浏览”   并导航到您要访问的SQL Server实例   通过防火墙,然后单击“打开”。默认情况下,SQL Server是   在C:\ Program Files \ Microsoft SQL   服务器\ MSSQL13.MSSQLSERVER \ MSSQL \ BINN \ Sqlservr.exe的。单击“下一步”。
  8.   
  9. 在“操作”对话框中,选择“允许连接”,然后选择“允许连接”   单击“下一步”。
  10.   
  11. 在“配置文件”对话框中,选择描述该配置文件的任何配置文件   要连接到的计算机连接环境   单击“数据库引擎”,然后单击“下一步”。
  12.   
  13. 在“名称”对话框中,键入此规则的名称和说明,   然后单击“完成”。
  14.   

查看Microsoft doucmentation Configure a Windows Firewall for Database Engine Access

答案 12 :(得分:4)

我遇到了同样的问题,问题是我在解决方案(WebDroid)中有几个项目,即使在Default project中选择了Package Manager Console它使用了Droid项目中的连接字符串:

PM> update-database -Verbose
Using StartUp project 'Droid'. <-- DROID
Using NuGet project 'Web'. <-- WEB
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
<!-- BAD TARGET DATABASE -->
Target database is: 'DefaultConnection' (DataSource: .\SQLEXPRESS, Provider: System.Data.SqlClient, Origin: Convention).
System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
   [REMOVED TEXT]
ClientConnectionId:00000000-0000-0000-0000-000000000000
Error Number:-1,State:0,Class:20
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

Startup Project设置为Web并将Default Project设置为Package Manger Console后,我就可以使用它了。

答案 13 :(得分:4)

您可以测试以下方法。

  
      
  •      
        
    1. 检查项目的连接字符串。
    2.   
  •   
  • B'/ P>      

        
    1. 转到服务并重新启动SQLServer实例。
    2.   
  •   
  • C

         
        
    1. 打开“SQLServer配置管理器”
    2.   
    3. 在左侧面板中选择“SQLServer网络配置”并展开
    4.   
    5. 选择“MSSQLServer的协议”
    6.   
    7. 在右侧面板中,点击“TCP / IP”
    8.   
    9. 在“协议”标签中,将“已启用”设置为“是”
    10.   
    11. 在“IP地址”标签中,向下滚动
    12.   
    13. 在'IPAll'中将'TCP Port'设置为1433
    14.   
  •   
  • d      
        
    1. 打开“具有高级安全性的防火墙”
    2.   
    3. 在右侧标签中选择“入站规则”
    4.   
  •   

在中间标签中找到“本地端口”为1433的记录,如果找不到,请尝试使用以下级别创建

  • 在“开始”菜单中,单击“运行”,键入“WF.msc”,然后单击“确定”
  • 在左侧面板中,单击“具有高级安全性的Windows防火墙”
  • 在右侧面板中,右键单击“入站规则”,然后单击“新建规则”
  • 在“规则类型”对话框中,选择“端口”,然后单击“下一步”
  • 在“协议和端口”对话框中,选择“TCP”,然后选择“特定本地端口”,然后键入端口号1433,单击“下一步”
  • 在“操作”对话框中,选择“允许连接”,然后单击“下一步”
  • 在“配置文件”对话框中,选中“域”,“私有”和“公共”,然后单击“下一步”
  • 在“名称”对话框中,键入“SQL 1433端口”以及描述自己的描述。然后单击“完成”
  
      
  1. 然后在中间选项卡中双击找到的项目(实例)或由您创建的“SQL 1433端口”名称项。
  2.   
  3. 在打开的对话框(SQL Server属性)中选择“范围”选项卡
  4.   
  5. 在本地PC中在浏览器中访问google.com并搜索“我的IP”。
  6.   
  7. 然后复制您的“IP”
  8.   
  9. 转到远程服务器并在“范围”选项卡的“SQL Server属性”对话框中,在“远程IP地址”中选择“这些IP地址”选项,然后单击“添加”按钮
  10.   
  11. 在打开的对话框(IP地址)中选择“此IP地址或子网”选项并粘贴“IP”,然后单击“确定”按钮。
  12.   

答案 14 :(得分:3)

为什么这个错误是如此的笨拙和嘈杂,只是因为它可能在不同的情况下发生。

我已经完成了上面所有的approchs,但仍然被吸了。所以在向下浏览之前,请确保你和我一样。

也许我无法立即修复你的情况, 但我可以指出一个方向或想到你 (最终在这里滑下来的人)。在确定实例名称明确正确并将数据库设置为允许按照上述方法进行远程控制之后,我已经开始思考正在运行的程序的错误。在那之后,我怀疑在SQL连接的代码片段中发生了错误。

解决我的问题:

  • 检查我的sqlconnection功能

  • 点击查看其配置

  • 新建连接

enter image description here

  • 选择您的服务器名称

enter image description here

它适用于我在思考连接过程中究竟发生了什么。希望我的想法会导致你杀死你的错误。

答案 15 :(得分:3)

我在这个问题上尝试了所有其他答案,如果不是全部可能在我的工作中发挥作用,但我仍然无法远程连接数据库。我在Azure VM上使用SQL Server。

我最终记得VM的端点由Azure帐户代理控制,因此我继续使用Azure门户并添加了1433作为可用端点,我可以连接到我的SQL实例。

希望这可以帮助那些尝试过所有其他答案且仍然没有运气的人!

答案 16 :(得分:3)

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

答案 17 :(得分:3)

摘要

要解决运行本地应用程序与远程数据库时遇到的此问题,请使用SQL Server配置管理器为远程数据库添加别名。

<强>详情

我最近在从Windows 7转换到Windows 10笔记本电脑时遇到了这个问题。我正在运行一个本地开发和运行时环境,在远程服务器上访问我们的Dev数据库。我们通过SQL Server客户端网络实用程序(cliconfg.exe)通过服务器别名设置访问Dev数据库。确认在64位和32位版本的实用程序中正确设置了别名,并且可以通过SSMS从新笔记本电脑访问数据库服务器后,我仍然看到OP看到的错误(不是OP&#39; s)当然是IP地址。

必须使用SQL Server配置管理器为远程开发人员数据库服务器添加别名。修正了事情。

enter image description here

答案 18 :(得分:3)

您可以检查MS SQL Server 2014的服务状态。在Windows 7中,您可以通过以下方式执行此操作:

  1. 转到搜索和键入&#34; SQL Server 2014 Configuration Manager
  2. 然后点击&#34; SQL Server服务&#34;在左侧菜单上
  3. 检查SQL Server服务状态的实例(如果已停止或正在运行)
  4. 如果已停止,请将状态更改为“正在运行”并登录到SQL Server Management Studio 2014

答案 19 :(得分:3)

此解决方案还解决了网络错误和sql server背后的服务

我在这里回答了类似的问题,你需要统计另一个open Run type-> services.msc - 在服务下 - &gt; sort by stopped 您会看到一堆已停止的SQL服务Right click and start

首先 - 在开始之前,有4个问题可能导致 常见 LocalDb SqlExpress Sql Server连接错误 SQL Network Interfaces, error: 50 - Local Database Runtime error occurred { {3}}

我发现最简单的方法是执行以下操作 - 我附上了图片和步骤以寻求帮助。

首先验证您已安装的实例,您可以通过检查注册表 运行cmd

来执行此操作
  1. cmd> Sqllocaldb.exe i
  2. cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore" 如果此步骤失败,您可以使用选项d cmd&gt;删除Sqllocaldb.exe d“someDb”
  3. cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
  4. cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"
  5. rename the V11 or 12 to mssqllocaldb

答案 20 :(得分:3)

虽然上述解决方案应该在90%的情况下有效,但如果你还在阅读这个答案!您可能正在尝试连接到不同于预期的服务器。这可能是由于配置文件指向的是与您认为要连接的实际服务器不同的SQL服务器。

至少发生在我身上。

答案 21 :(得分:2)

当我尝试将服务器从 IIS Express 更改为本地IIS (使用 LocalDB 时)时,我的问题就开始了。

enter image description here

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

连接字符串不正确

$(window).keydown(function(event) { if(event.altKey && event.keyCode == 83) { console.log("Alt+S event captured!"); event.preventDefault(); } });

更正连接字符串

<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SurveyTestsDB.mdf;Initial Catalog=SurveyTestsDB;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />

希望这可以帮助那些人。

答案 22 :(得分:2)

除了尝试Teo Chuen Wei Bryan建议的所有内容外,请确保您还在连接字符串中引用了正确的服务器/实例名称。

如果您在数据库服务器或web.config文件中使用简短形式的主机名/实例,请确保使用完全限定的域名(FQDN)/实例

此外,要测试不存在SQL Server客户端的服务器的连接,

- &GT;创建文本文件并将其文件扩展名更改为 .udl

- &GT;右键单击该文件,您可以看到连接选项卡。

- &GT;输入服务器名称和登录信息以测试与数据库服务器的连接。

希望这有帮助。

答案 23 :(得分:2)

如果您突然在生产环境中遇到此错误,并且没有任何更改,请按以下顺序尝试以下4项,看看它是否已修复。

  1. 重启sql server服务。
  2. 重新启动调用sql server的服务(比如说IIS)。 (问题可能在这里,如果从SQL服务器的服务调用开始到最终得到响应错误的时间之间的时间非常短(约一秒或两秒)。
  3. 重新启动服务器sql server已启用。
  4. 重启服务器,呼叫服务已开启。

答案 24 :(得分:2)

当我在Visual Studio中遇到此错误时,

  

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

...这是在执行以下C#代码期间,它试图获取我的SQL Server数据以在网格中显示它。中断发生在connect.Open():

的行上
CellContentClick

这是莫名其妙的,因为SQL查询非常简单,我有正确的连接字符串,并且数据库服务器可用。我决定在SQL Management Studio中自己手动运行实际的SQL查询,它运行得很好并产生了几条记录。但有一点在查询结果中脱颖而出:在Friends表中的varchar(max)类型字段内部存在一些编码不正确的HTML文本(具体而言,#{1}}中的某些编码注释符号存在于&#34中;叙述&#34;列的数据)。可疑数据行如下所示:

private void datagridSB_CellContentClick(object sender, DataGridViewCellEventArgs e) {
  int curRow = e.RowIndex;
  if (e.ColumnIndex == 1) {
    DataGridViewCheckBoxCell cbc = datagridSB.Rows[curRow].Cells[1] as DataGridViewCheckBoxCell;
    bool isChecked = (bool)cbc.EditedFormattedValue;
    if (isChecked) {
      datagridSB.Rows[curRow].Cells[2].Value = false;
    } else {
      datagridSB.Rows[curRow].Cells[2].Value = true;
    }
  }
  if (e.ColumnIndex == 2) {
    DataGridViewCheckBoxCell cbc = datagridSB.Rows[curRow].Cells[2] as DataGridViewCheckBoxCell;
    bool isChecked = (bool)cbc.EditedFormattedValue;
    if (isChecked) {
      datagridSB.Rows[curRow].Cells[1].Value = false;
    } else {
      datagridSB.Rows[curRow].Cells[1].Value = true;
    }
  }
}

private void datagridSB_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e) {
  datagridSB_CellContentClick(sender, e);
}

请注意编码的HTML符号&#34; using (var connect = Connections.mySqlConnection) { const string query = "SELECT Name, Birthdate, Narrative FROM Friends"; using (var command = new SqlCommand(query, connect)) { connect.Open(); using (var dr = command.ExecuteReader()) { while (dr.Read()) { // blah } } } } &#34;,代表&#34;&lt;&#34;字符。不知何故,它进入了数据库,我的C#代码无法接收它!它每次都在connect.Open()行失败!在我手动编辑数据库表中的那一行数据之后,将其放入已解码的&#34;&lt;&#34;相反,一切都有效!以下是该行应该是什么样的:

<!--

我使用下面这个简单的UPDATE语句编辑了我的一个坏行。但是如果你有几行有问题的编码HTML,你可能需要一个使用REPLACE函数的更精细的UPDATE语句:

Name    Birthdate    Narrative
====    =========    ============== 
Fred    21-Oct-79    &lt;!--HTML Comment -->Once upon a time...

所以,故事的寓意是(至少在我的情况下),在将HTML内容存储到数据库之前对其进行清理,并且您首先不会得到这个神秘的SQL Server错误! (呃,如果你需要更多的信息,正确清理/解码你的HTML内容是另一个值得单独的StackOverflow搜索的讨论的主题!)

答案 25 :(得分:2)

我从Windows 7上的工作笔记本电脑转移到Windows 10上的工作笔记本电脑。 我在Windows 7上成功使用了SSMS2016。

使用SSMS2012或SSMS2016应用了同样的问题。 我使用Windows身份验证访问10个sql服务器仍然是相同的。我可以从另一台服务器测试这个。 但是,10台服务器中的2台服务器无法从我的笔记本电脑连接。 两者都是ms sql server 9但我可以连接到其他sql server 9数据库。

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

为每个SSMS创建传入规则 例如C:\ Program Files(x86)\ Microsoft SQL Server \ 130 \ Tools \ Binn \ ManagementStudio \ Ssms.exe

我不是网络专家,所以我没有提供详细信息,但希望它能为您指明正确的方向。

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

答案 26 :(得分:2)

尝试在连接字符串的末尾添加,和端口号(如,1433)。

答案 27 :(得分:1)

Web.config中的Xml标记排列很重要

第一

<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>

<connectionStrings>
  <add name="SqlConnectionString" connectionString="Data Source=.; Initial Catalog=TestDB; Trusted_Connection=True;" providerName="System.Data.SqlClient" />
</connectionStrings>

答案 28 :(得分:1)

My issue was that you need to have a connection string entry in both your repository layer and web layer. Once I added it to my web.config as well as my app.config, Entity Framework was able to create the migration.

My question is why, does the web.config need it, when there is absolutely no database access there.

答案 29 :(得分:1)

在我的情况下,MSSQLSERVER服务出现问题,因此我重新启动了服务并解决了问题。

因此,我建议通过以下方式转到“服务”应用程序:Windows键,搜索“服务” ,然后通常在“ SQL Server(MSSQLSERVER)” 中找到您的Sql实例Microsoft sql服务器。 右键单击服务,然后单击启动,如果禁用,请单击重新启动。

答案 30 :(得分:1)

似乎您的localdb实例未运行。 要在计算机启动时启动它,请使用以下行添加到“开始”菜单\“启动”文件夹BAT文件中

sqllocaldb start name_of_instance

其中name_of_instance是您要启动的localdb实例的名称。 您可以使用sqllocaldb i在命令行中列出可用实例。

e.g。如果您正在使用SQL Server Management Studio并连接到服务器名称(localdb)\v11.0,那么您的BAT文件将如下所示

sqllocaldb start v11.0

答案 31 :(得分:1)

如果您在Visual Studio中进行调试时遇到此问题,请确保项目构建路径指向本地驱动器,或按照these steps授予网络文件夹的权限。

答案 32 :(得分:1)

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

答案 33 :(得分:1)

当您的sql server实例为stopped时会发生此错误。

转到所有程序&gt; SQL Server&gt;配置工具&gt; SQL SERVER CONFIGURATION MANAGER

然后单击SQL sERVER SERVICES,将出现实例列表,选择有问题的实例并单击顶部工具栏上的播放图标,希望这会有所帮助。

这个答案很晚(但迟到总比没有好;)

答案 34 :(得分:0)

它也可以很简单,因为您的数据库实际上不是MS SQL Server。例如,如果您的数据库实际上是MySql,并且尝试使用System.Data.SqlClient连接到该数据库,则会出现此错误。

到目前为止,ADO.Net的大多数示例都是针对MSSQL的,没有经验的用户可能不知道您无法将SqlConnectionSqlCommand等用于MySql。

虽然所有ADO.Net数据提供程序都遵循相同的接口,但是您必须使用为数据库创建的提供程序。

答案 35 :(得分:0)

我也遇到了这个问题,我尝试了本文中建议的所有方法,但没有任何效果。最后,我通过在SQL Server中执行此查询解决了我的问题

EXEC sp_configure 'remote access', 0 ;  
GO  
RECONFIGURE ;  
GO  

答案 36 :(得分:0)

我知道这是被掩埋的,但是当我移动数据库时却没有给NT Service \ MSQLSERVER帐户授予我将数据库文件移动到的目录的权限时,就曾引起此问题。授予权限并重新启动SQLServer可以解决问题。

答案 37 :(得分:0)

我几乎尝试了所有事情。然后,我卸载了Malwarebytes。声称可以删除恶意软件的软件(通常可以删除)。在那之后,一切都很好。也许有人可能出于相同的原因遇到相同的问题。

答案 38 :(得分:0)

验证用于创建SQL Server实例会话的帐户。

See

答案 39 :(得分:0)

如果 SQL Server 正在运行并且您仍然收到错误消息; 当 SQL Server 打开时,而不是显示的默认服务器名称 您应该在下面选择服务器名称以 \SQLEXPRESS 结尾 服务器名称-> 浏览更多-> 数据库引擎选项。