452

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

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

当我尝试在 Visual Studio 2010 中将我的数据库配置为 gridview 时,会引发此错误。我不知道如何调试此错误。

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

4

45 回答 45

327

我发现以下技术很有帮助:

  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 的默认端口的位置。

于 2013-08-05T14:33:50.877 回答
158

我得到了解决方案:

打开“SQL Server 配置管理器”

现在单击“SQL Server 网络配置”并单击“名称协议”

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

现在选择“IP地址”选项卡-然后-转到最后一个条目“IP全部”

输入“TCP 端口”1433。

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

它会工作...

于 2015-09-08T12:34:31.067 回答
138

添加我高度赞成的评论作为屏幕截图的答案。

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

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

在此处输入图像描述

2) 选择 --> IP 地址(Tab)

3) 转到最后一个条目IP All并提及TCP Port 1433

在此处输入图像描述

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

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

在此处输入图像描述

之后,问题就解决了!

于 2016-07-28T15:46:45.003 回答
95

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

服务形象

于 2016-02-16T20:14:52.563 回答
26

此错误主要出现在 SQL 服务停止时。您需要重新启动服务。要转到此窗口,您必须像这样搜索服务- 在此处输入图像描述

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

在此处输入图像描述

希望这会奏效。

于 2017-11-08T16:19:20.247 回答
20

如果您可能使用的是 Express Edition

"\SQLEXPRESS"在您的服务器名称后添加

例如"MY-SERVER\SQLEXPRESS"

在此处输入图像描述

于 2016-09-26T13:08:46.700 回答
18

按下window + R (Run window Open)并在运行窗口类型中"services.msc"打开新服务,在我的情况下找到带有实例名称的 SQL SERVER,SQL SERVER(SQLEXPRESS)然后启动此服务并重试它对我有用,希望它也对你有用。在此处输入图像描述

于 2016-04-02T08:25:33.173 回答
17

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

  1. 打开“运行”并输入services.msc
  2. 查找 SQL Server(实例名称)和 SQL Server Browser 的服务。一次一个,右键,选择“属性”,复制exe文件的路径
  3. 然后打开firewall.cpl,点击允许应用程序或添加规则,添加之前复制的路径(有一个过程需要遵循),勾选域和私有,取消勾选公共。

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

于 2016-02-27T16:10:32.817 回答
12

此解决方案解决了SQL 服务器背后的两个问题 Network Errorservice

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

开始 - 有 4 个问题可能导致常见的LocalDb SqlExpress Sql Server 连接错误 SQL Network Interfaces, error: 50 - Local Database Runtime error occurred,在开始之前,您需要将 v11 或 v12 重命名为 (localdb)\mssqllocaldb


Troubleshooting Steps
  1. 您没有运行此 cmd的服务 ,或者net start MSSQLSERVERnet start MSSQL$ instancename
  2. 您没有在此处 配置 防火墙端口 在此处输入图像描述
  3. 您的安装有问题/损坏(下面的步骤帮助您有一个干净的开始)
  4. 您没有将 V11 或 12 重命名为 mssqllocaldb/SqlServer

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


Resolution Steps:

首先验证您安装了哪个实例,您可以通过检查注册表 运行 cmd来执行此操作

  1. cmd> Sqllocaldb.exe i
  2. cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore" 如果此步骤失败,您可以使用选项dcmd> Sqllocaldb.exe d "someDb"删除
  3. cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
  4. cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"

重新启动MSSql Server或只需重新启动您的机器!

  • 按住/按下打开 CMD,window + R然后键入“services.msc”

  • 现在寻找 sql server 服务,打开 find SQL SERVER with instance name 然后ReStart这个服务,然后再试一次

SqlLOCALDb_edited.png

于 2017-03-01T05:17:25.220 回答
12

我遇到了同样的问题在我的情况下,我以这种方式解决了问题

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

第 2 步:启用 TCP/IP

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

这解决了我的问题。即使执行上述所有步骤都不能解决问题,也只需重新启动 PC,然后希望它能够正常工作。

于 2020-07-02T09:05:34.553 回答
10

如果上述解决方案都不起作用(对我不起作用),那么只需重新启动您的计算机,您就可以连接到您的 sql 服务器(localhost)。

于 2015-10-08T10:06:44.253 回答
9

完成此处提到的所有操作后: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 管理工作室的 CONNECT TO SERVER 框中尝试连接的服务器名称相同。

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

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

谢谢。

于 2016-02-27T17:47:04.800 回答
8

您可以测试以下方法。

  • 一个

    1. 检查项目的连接字符串。
  • b

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

    1. 打开“SQLServer 配置管理器”
    2. 在左侧面板中选择“SQLServer 网络配置”并展开它
    3. 选择“MSSQLServer 协议”
    4. 在右侧面板 dbl 中单击“TCP/IP”
    5. 在“协议”选项卡中,将“启用”设置为“是”
    6. 在“IP 地址”选项卡中向下滚动
    7. 在“IPAll”中将“TCP 端口”设置为 1433
  • d
    1. 打开“具有高级安全性的防火墙”
    2. 在右侧选项卡中选择“入站规则”

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

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

我正在使用 SQL Server 2016 和 Window 10。

在此处输入图像描述

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

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

在此处输入图像描述

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

在 Windows 防火墙中打开一个端口以进行 TCP 访问

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

另一件事要配置。

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

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

查看 Microsoft 文档 为数据库引擎访问配置 Windows 防火墙

于 2016-11-11T07:06:19.733 回答
6

我必须在SQL Server Configuration Manager中运行SQL Server Browser服务。没有这个,安装无法发现新创建的服务。

于 2016-01-27T11:11:35.693 回答
5

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

  1. 转到搜索并键入“SQL Server 2014 配置管理器”
  2. 然后单击左侧菜单中的“SQL Server 服务”
  3. 检查 SQL Server 服务实例是否已停止或正在运行
  4. 如果已停止,请将状态更改为正在运行并登录 SQL Server Management Studio 2014
于 2017-07-16T07:36:52.193 回答
5

Web我遇到了同样的问题,问题是我在解决方案(和)中有几个项目,Droid即使在它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 ProjecttoWebDefault Projectin之后,Package Manger Console我让它工作了。

于 2016-10-15T18:22:30.853 回答
4

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

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

希望这对尝试了所有其他答案但仍然没有运气的人有所帮助!

于 2016-05-26T14:52:51.290 回答
4

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

我已经完成了上面的所有方法,但仍然被吸引。因此,在向下浏览之前,请确保您已经完成了与我相同的操作。

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

我的问题的解决方案:

  • 检查我的 sqlconnection 函数

  • 点击查看其配置

  • 新建连接

在此处输入图像描述

  • 选择您的服务器名称

在此处输入图像描述

思考连接过程中到底发生了什么对我有用。希望我的想法能引导你消除你的错误。

于 2017-11-14T10:57:59.083 回答
4

只需重新启动 SQL Server (MSSQLSERVER) 服务。

于 2020-12-26T22:58:48.617 回答
4

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

至少发生在我身上。

于 2016-04-28T07:51:01.587 回答
4

概括

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

细节

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

必须使用 SQL Server 配置管理器为远程 Dev 数据库服务器添加别名。把事情搞定了。

在此处输入图像描述

于 2017-11-02T14:00:04.470 回答
4

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

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

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

        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
                    }
                }
            }
        }

莫名其妙,因为 SQL 查询很简单,我有正确的连接字符串,并且数据库服务器可用。我决定自己在 SQL Management Studio 中手动运行实际的 SQL 查询,它运行得很好并产生了几条记录。但是在查询结果中有一点很突出:Friends 表中的 varchar(max) 类型字段中有一些编码不正确的 HTML 文本(具体来说,<!--“叙述”列的数据中存在一些排序的编码注释符号)。可疑数据行如下所示:

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

请注意编码的 HTML 符号“ &lt;”,它代表“<”字符。不知何故,它进入了数据库,我的 C# 代码无法识别它!它每次都在 connect.Open() 行失败!在我手动编辑数据库表 Friends 中的那一行数据并输入解码后的“<”字符后,一切正常!该行应该是这样的:

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

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

UPDATE Friends SET Narrative = '<!--HTML Comment -->Once upon a time...' WHERE Narrative LIKE '&lt%'

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

于 2017-05-22T20:50:43.490 回答
4

我从 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 数据提供者)

于 2017-01-17T09:55:42.403 回答
3

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>
于 2017-12-25T08:52:46.713 回答
3

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

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

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

--> 创建一个文本文件并将其文件扩展名更改为.udl

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

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

希望这可以帮助。

于 2017-03-15T21:35:20.640 回答
3

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

于 2018-06-07T13:44:08.410 回答
3

在我的情况下,MSSQLSERVER 服务有问题,所以我重新启动了服务并解决了问题。

所以我建议通过以下方式访问服务应用程序:Windows 键,搜索“服务” ,然后在 Microsoft sql server 上找到您的 Sql 实例,通常是“SQL Server (MSSQLSERVER)” 。右键单击服务并单击开始,如果禁用单击重新启动。

于 2019-07-07T08:15:44.000 回答
3

如果在 Visual Studio 中调试时遇到此问题,请确保项目生成路径指向本地驱动器,或按照以下步骤授予对网络文件夹的权限。

于 2016-11-16T00:20:24.457 回答
3

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

  1. 重启sql server服务。
  2. 重新启动调用 sql server 的服务(比如 IIS)。(如果从开始对 SQL Server 的服务调用到您最终收到响应错误的时间非常短(大约一到两秒),则问题可能就在这里。
  3. 重新启动服务器 sql server 已打开。
  4. 重新启动调用服务所在的服务器。
于 2017-04-24T03:33:18.300 回答
3

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

在此处输入图像描述

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

连接字符串不正确

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

正确的连接字符串

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\SurveyTestsDB.mdf;Initial Catalog=SurveyTestsDB;Integrated Security=True" providerName="System.Data.SqlClient" />

希望这可以帮助那里的人。

于 2017-02-20T22:29:39.137 回答
2

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

于 2016-10-22T20:34:29.783 回答
2

当您的 sql server 实例为stopped.

转到所有程序>SQL Server >配置工具>SQL SERVER CONFIGURATION MANAGER

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

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

于 2016-04-16T12:58:23.593 回答
1

用于远程服务器数据库连接。如果没有一个答案让您满意,则很可能您没有将 SQL 端口 1433 添加到 Windows 防火墙例外。执行以下步骤。

  1. 转到开始菜单打开运行类型WF.msc
  2. 具有高级安全性的 Windows 防火墙中
  3. 添加入站规则。
  4. 添加端口 1433。
  5. 命名你的规则。
  6. 重新启动 SQL 服务。

有关连接远程服务器的问题的完整指南。连接到 SQL Server 数据库的疑难解答。

于 2022-01-26T13:29:16.620 回答
1

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

sqllocaldb start name_of_instance

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

例如,如果您使用 SQL Server Management Studio 并连接到 Server Name (localdb)\v11.0,那么您的 BAT 文件将如下所示

sqllocaldb start v11.0
于 2017-02-09T10:26:04.743 回答
1

我的问题是您需要在存储库层和 Web 层中都有一个连接字符串条目。一旦我将它添加到我的 web.config以及我的app.config 中,Entity Framework 就能够创建迁移。

我的问题是,当那里绝对没有数据库访问权限时,为什么 web.config 需要它。

于 2017-02-28T20:58:24.857 回答
0

如果 SQL Server 正在运行,但仍然出现错误;当 SQL Server 打开时,您应该在 Server name-> Browse for more-> Database engine 选项下选择以 \SQLEXPRESS 结尾的服务器名称,而不是显示的默认服务器名称。

于 2021-01-18T00:21:01.990 回答
0

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

到目前为止,ADO.Net 的大多数示例都是针对 MSSQL 的,没有经验的用户可能不知道您不能在 MySql 中使用SqlConnection,SqlCommand等。

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

于 2019-05-19T20:44:01.250 回答
0

尝试从其他网络访问 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 添加入站+出站规则

于 2022-01-22T12:33:38.963 回答
0

对我来说,解决方案是调用互联网提供商打开端口 1433。

出于某种原因,他们阻塞了端口,我什至无法 ping 数据库服务器(托管在 Azure 上)。100% 的数据包丢失。

在他们打开港口后,一切又恢复了正常。

于 2021-09-07T09:11:01.083 回答
0

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

看

于 2020-10-09T11:35:44.677 回答
0

我这么晚才来到这里,遇到了同样的问题。对我来说,问题来了,因为我更改了电脑名称。

于 2022-01-13T12:59:11.783 回答
0

我也有这个问题,我尝试了这篇文章中建议的一切,但没有任何效果。最后我通过在我的 SQL Server 中执行这个查询解决了我的问题

EXEC sp_configure 'remote access', 0 ;  
GO  
RECONFIGURE ;  
GO  
于 2019-06-27T05:20:50.037 回答
0

我知道这被埋没了,但是当我移动数据库时没有将 NT Service\MSQLSERVER 帐户权限授予我将数据库文件移动到的目录,我就导致了这个问题。授予权限并重新启动 SQLServer 就可以了。

于 2019-09-03T15:06:17.000 回答
-1

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

于 2019-12-12T19:32:14.187 回答