【问题标题】:VS2019 sql connection issue running asp.net projectVS2019运行asp.net项目的sql连接问题
【发布时间】:2023-03-24 04:15:01
【问题描述】:

我的开发笔记本电脑上安装了 sqlexpress 以及 vs2019。我可以在 SSMS 和服务器资源管理器中访问 sql 实例。当我去调试和asp.net项目时,sql连接失败:

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

同样的配置适用于我的桌面 - 相同的连接字符串 - 没问题。并且笔记本电脑的 sql 被配置为允许远程连接。

不确定下一步该怎么做?

谢谢 雅培

附加信息 ... 我确保命名管道和 tcpip 已启用并且浏览器正在工作。仍然有同样的错误。这是连接字符串。桌面连接在我的桌面上工作:

<!--Local DB For Desktop Testing-->
<!--<add name="DBConn" connectionString="data source=DESKTOP-QQOLG5N\SQLEXPRESS;initial catalog=kidsbookoutlet;integrated security=SSPI;persist security info=True;packet size=4096" />
<add name="KBODataEntities" connectionString="metadata=res://*/Context.KBODataEntities.csdl|res://*/Context.KBODataEntities.ssdl|res://*/Context.KBODataEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=DESKTOP-QQOLG5N\SQLEXPRESS;initial catalog=kidsbookoutlet;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />-->

<!--Local DB For Laptop Testing-->
<add name="DBConn" connectionString="data source=LAPTOPDELL\SQLEXPRESS;initial catalog=kidsbookoutlet;integrated security=SSPI;persist security info=True;packet size=4096"/>
<add name="KBODataEntities" connectionString="metadata=res://*/Context.KBODataEntities.csdl|res://*/Context.KBODataEntities.ssdl|res://*/Context.KBODataEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=LAPTOPDELL\SQLEXPRESS;initial catalog=kidsbookoutlet;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient"/>

这是有效的 ssms 连接。

【问题讨论】:

  • 在您的 Visual Studio 中检查您的连接字符串。您可能在其中拼错了一个单词。如果没问题,打开运行命令并输入 services.msc。找到 SQLSERVER\EXPRESS 并仔细检查它是否正在运行。
  • 这是一个非常明确的消息 - 服务器不可访问,可能是因为它没有运行或服务器名称/地址错误。或者它可能没有配置为接受远程调用或 TCP 调用。有几个重复的问题。
  • 至少张贴连接字符串。服务器名称应该类似于.\SQLEXPRESSlocalhost\SQLEXPRESS127.0.0.1\SQLEXPRESS。当您从 SSMS 连接时,您使用哪个名称?
  • This same configuration works on my desktop 但您没有连接到桌面,而是连接到不同的机器,使用不同的域名

标签: asp.net sql-server visual-studio-debugging


【解决方案1】:

你有运行 sql server 浏览器服务吗?通常 SSMS 会抱怨,既然那是有效的,那么这是一个很长的机会。但我会确保不仅sql server服务在运行,而且sql浏览器服务也在运行。

这个:

下一个?您使用 .net 中的哪个提供商进行连接? 你有并且可以选择:

oleDB

ODBC

sqlProvider

所以,我会在项目设置中,在这里创建一个连接字符串:

对于以上内容,您在使用连接字符串生成器时是否尝试过测试连接按钮:

这个:

我的意思是,为什么要尝试运行一堆代码和各种东西。现在,也许您正在谈论 VS 中的连接构建器,但您无法连接。

但是,如果 SSMS 可以,那么 VS 应该可以。

那么,上面的测试不起作用吗?

如果浏览器服务正在运行,您也可以尝试(并且应该)在 sql confi 中检查上面的屏幕截图。当你这样做的时候,检查连接。 展开 SQL Server 网络配置 并查看这些设置:

所以在你写任何代码之前? 您检查浏览器服务是否正在运行。单击/展开 sql express 的协议。 然后在 VS 中启动连接构建器并使用测试连接。 以上所有这些都是在您的时间最多 40 秒内完成的。 这些步骤是你要做的第一件事。

暂时不要尝试在 VS 中编写代码。使用连接字符串生成器。

您也没有提及您使用的是哪个提供商? (这是非常麻烦的,因为您应该处理连接问题,并且您未能提及您尝试使用的提供程序。 如前所述,您有 3 个选择:

oleDB 提供者

ODBC 提供者

sqlProvider(这是推荐的 .net 提供程序 - 通常称为 ado.net(但我不知道是什么原因 - 这个词早就应该被淘汰,因为多年来它造成的贫困和混乱)。

无论如何? 花 45 秒检查上述内容,然后再花 35 秒在 VS 中创建连接。只需记住在该连接构建器中选择与您在代码中使用的相同的提供程序(上述 3 个中的 1 个),因此当您使用测试连接时,您至少有一个已知的工作连接字符串和一个已知的工作连接字符串给定您在此处使用的提供程序。

【讨论】:

  • 我同时启动了浏览器和命名管道。 SSMS 仍然连接,但 asp.net 应用程序仍然失败。这是我正在使用的连接字符串(在台式机和笔记本电脑上。
  • 我不确定如何回复所有信息,因此我更新了原始请求以包含我的其他信息...谢谢
  • 在您尝试运行任何代码之前,VS 中的测试连接是否有效?
  • 也就是说,当你在vs的设置中建立一个连接字符串并使用测试连接时,连接是否显示ok?你回来了 SSMS 的屏幕截图 - 这不是我问的。在 VS 的设置中使用连接字符串生成器,如我的屏幕截图所示 - 测试连接按钮是否有效?我们没有使用 VS 的 sql server explorer - 而是对 VS 中的连接字符串生成器进行简单测试。
  • 我正在管理一个较旧的网站项目,而不是一个 Web 应用程序。我的字符串是由 EF 构建的。我已经附加了来自 VS 服务器资源管理器的连接图像......它在 VS 中工作。可能有一个 IIS 设置会影响这个?坦克 - 雅培
猜你喜欢
  • 2021-04-15
  • 1970-01-01
  • 2015-11-19
  • 2011-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
  • 2011-07-17
相关资源
最近更新 更多