ChatGPT解决这个技术问题 Extra ChatGPT

为什么在建立与 SQL Server 的连接时会发生与网络相关或特定于实例的错误?

我很沮丧。我有一个使用本地数据库在 Visual Web Developer 2008 Express 上运行的网站,一切正常。我也在生产服务器上运行相同的网站。一切都很好,但今晚我对生产进行了“重置”。

我删除了几个表,重新创建它们并插入数据。此时一切正常。我通过 FTP 删除了所有文件。我在 Visual Studio 中使用了名为“复制网站”的模块,并通过 FTP 将网站复制到网站。

当我登录我的网站时,这是我得到的错误:

“/”应用程序中的服务器错误。建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例) 描述:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.Data.SqlClient.SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

SQL 连接没有任何改变,这是我一直使用的旧代码。我的网站因此完全瘫痪,我内心感到恶心,因为我觉得我无能为力。

任何人都可以帮助我吗?

你能从另一台机器连接到 SQL 服务器吗?你是不是不小心关机了?
尝试连接我的 SQL 管理工作室时遇到同样的错误。事实上,我以前从未尝试过,所以我不知道这是一种新行为还是同样的事情。这是一个生产服务器,所以我不知道我的 sql 服务器是否已关闭。我所知道的是,从网络面板,我可以毫无问题地访问我的数据库的内容......
我建议您关闭 sql server,或者可能有新的防火墙等。我的建议是首先重新启动 sql server 框。然后,如果这种情况继续存在,请与您的基础设施人员核实 SQL 服务器是否已启动并正在运行并且可以从其他计算机访问。
我已按照此处的故障排除步骤解决了该问题:docs.microsoft.com/en-us/sql/database-engine/configure-windows/…
用于代码迁移update-database 等人)see this answer

J
Johannes Rudolph

当您在服务器上复制新网站版本时,您的连接字符串可能已被覆盖。请检查 web.config 中的连接字符串,看看它是否有效。


事实上,我之前使用的是 Visual Studio 2005,并且正在执行“发布到网站”。我不知道的是,在此过程中,Visual Studio 在编译之前将站点置于调试模式 = false juste。现在我有 Visual Web developer 2008 express 并使用复制到网站来代替,那还没有完成。由于我的连接字符串基于“我们是否在调试”,它试图连接到我的开发服务器!谢谢!
其他解决方案,使用服务检查this,希望有所帮助。
用于代码迁移update-database 等人)see this answer
K
KyleMit

如果您从 Windows 机器 A 连接到 Windows 机器 B(安装了 SQL Server 的服务器)并收到此错误,则需要执行以下操作:

在机器 B 上:

打开名为“SQL Server Browser”的 Windows 服务并启动该服务 在 Windows 防火墙中:启用传入端口 UDP 1434(如果机器 A 上的 SQL Server Management Studio 正在连接或机器 A 上的程序正在连接)启用传入端口 TCP 1433 (如果有 telnet 连接)在 SQL Server 配置管理器中:为端口 1433 启用 TCP/IP 协议


J
Jean-François Côté

我已经解决了这个问题。这是由于 SQL 浏览器服务。

此类问题的解决方案是以下之一 -

检查连接字符串中指定的 SQL Server 实例名称的拼写。

使用 SQL Server 外围应用配置工具使 SQL Server 能够接受通过 TCP 或命名管道协议的远程连接。有关 SQL Server 外围应用配置工具的详细信息,请参阅服务和连接的外围应用配置。

确保已将 SQL Server 服务器实例上的防火墙配置为打开 SQL Server 端口和 SQL Server Browser 端口 (UDP 1434)。

确保 SQL Server Browser 服务已在服务器上启动。

链接 - http://www.microsoft.com/products/ee/transform.aspx?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=-1


SQL Server 浏览器对我来说被禁用了,不知道为什么它是这样开箱即用的,但确实成功了,谢谢。
这个问题很奇怪......我得到了 MS Sql Server 连接异常,但我是使用 MySql 设置的。连接在单元测试中起作用。
B
Brajendu Kumar Das

检查以下内容:

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

• 开始 > 所有程序 > SQL Server 2005 > 配置工具 > SQL Server 外围应用配置 • 单击服务和连接的外围应用配置 • 选择有问题的实例 > 数据库引擎 > 远程连接 • 启用本地和远程连接 •重启实例

检查 SQL Server 服务帐户

• 如果您没有将域帐户用作服务帐户(例如,如果您使用的是 NETWORK SERVICE),您可能需要先切换此帐户,然后再继续

如果您使用的是命名 SQL Server 实例,请确保您在 ASweb P.NET 应用程序的连接字符串中使用该实例名称

• 通常指定数据库服务器所需的格式是 machinename\instancename • 检查您的连接字符串以及


将我的连接字符串中的“localhost”更改为 SQL Server 实例名称有效。正确的实例是“PCNAME\SQLEXPRESS”。
A
André Abboud

原因是 SQL SERVER 已从 services.msc 停止,此问题的解决方案可能是从 services.msc 启动 SQL SERVER

https://i.stack.imgur.com/2xbHt.png


S
Safraz

我在使用 SQL Server 2008 R2 时遇到了同样的问题,当我检查“SQL Server 配置管理器”时,我的 SQL Server 实例已停止。右键单击并启动实例解决了这个问题。


B
Bhaskarreddy Mule

我们必须在 sql server configuration manager 中启用 TCP/IP 属性


J
Jeff Johnson

我最近遇到了这个问题,它最终成为一个端口问题。我的生产 SQL Server 设置为端口 1427 而不是 1433。

只需将连接字符串更改为

...data source=MySQLServerName,1427;initial catalog=MyDBName...

希望这对可能遇到同样问题的人有所帮助。


m
marc_s

如果您的服务器正在工作并且突然开始出错,则您的服务器/实例停止并且连接设置以某种方式更改。

对于 SQL Server 2008,您可以按照以下方式进行调整:

转到开始 > 所有程序 > SQL Server 2008 > 配置工具 > SQL Server 配置管理器 > SQL Server 服务。在这里,您将看到所有实例及其状态。您尝试连接的实例的状态可以在此处停止。双击实例,然后单击连接。它将连接,现在返回并运行您的应用程序,您将能够毫无错误地连接。

此解决方案假定错误不是由连接字符串中的错误引起的。


如果您将其重新格式化为多个段落,这将有助于此答案
Z
Zapnologica

就我而言,这是一个非常愚蠢的错误。我正在使用库从配置文件中读取连接字符串,但我忘记了双反斜杠。

例如,我有:localhost\sqlexpress,当我宁愿让 localhost\\sqlexpress 注意到 \ 时,它被读作 localhostsqlexpress


n
naveen

我有同样的问题,即在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。

我正在使用 SQL Server 2005 (.\sqlexpress)` 并且工作正常,但突然服务停止并给了我错误。

我是这样解决的

开始-> 搜索框-> Sql 配置管理器-> SQL Server 2005 服务>然后通过右键单击该服务状态将 SQL Server (SQLEXPRESS) 状态更改为运行。


A
Ashin

我通过在指定的 in this post 提升的命令提示符中运行以下命令解决了这个问题。

net start mssqlserver

M
Mister Cook

我遇到了同样的问题,但发现这是因为我的数据库引擎服务帐户的密码已过期。解决方案是登录该帐户,修复此问题,然后设置帐户,使密码永不过期。


E
Eric Aya

我的远程 sql 服务器期望在不同的端口上连接,而不是在默认的 1443 上。

解决方案是在您的 sql 服务器 IP 后添加一个“,”,然后添加您的端口,如 129.0.0.1,2995(检查服务器 IP 后的“,”)

请在下面找到图片以供参考。

https://i.stack.imgur.com/k88MP.png


u
user1534664

我遇到了同样的错误,结果是.NET 在 localhost 上创建了一个我不知道的数据库。当我试图让网站上线时,它没有创建数据库,所以代码指向一个不存在的数据库。

希望这可以帮助其他一些人尝试进行故障排除。


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅