VS2019 SQL连接问题正在运行ASP.NET项目

问题描述

我在开发笔记本电脑上安装了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连接。

SSMS Connection that works

enter image description here

解决方法

您是否正在运行sql服务器浏览器服务?通常,SSMS会抱怨,并且既然这样有效,那么这是一个漫长的尝试。但是我将确保不仅运行sql server服务,而且还运行sql browser服务。

这个: enter image description here

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

oleDB

ODBC

sqlProvider

因此,我将在项目设置中在此处创建一个连接字符串:

enter image description here

以上,使用连接字符串生成器时是否尝试过测试连接按钮:

这个:

enter image description here

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

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

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

如果浏览器服务正在运行,您还可以尝试(并且应该)在sql confi中检查上述屏幕截图。然后,检查连接。 展开SQL Server网络配置 并查看以下设置:

enter image description here

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

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

您还没有提及您使用的是哪个提供商? (这很麻烦,因为您假设要处理连接问题,并且失败地提到要使用的提供商。 如前所述,您有3个选择:

oleDB提供程序

ODBC提供程序

sqlProvider(这是推荐的.net提供程序-通常称为ado.net(但我永远不知道出于什么原因-该术语应早就因贫穷而消失了,多年来引起混乱)。

好吗? 花45秒检查上述内容,然后再花35秒在VS中创建连接。只需记住要像在代码中(上述3个中的1个)中所使用的那样在该连接构建器中选择SAME提供程序,因此,当您使用测试连接时,至少要有一个已知的工作连接字符串和一个已知的工作连接字符串。给定的提供商,您在这里使用。