问题描述
我在开发笔记本电脑上安装了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="data source=DESKTOP-QQOLG5N\sqlEXPRESS;initial catalog=kidsbookoutlet;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" 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="data source=LAPTOPDELL\sqlEXPRESS;initial catalog=kidsbookoutlet;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient"/>
这是有效的ssms连接。
解决方法
您是否正在运行sql服务器浏览器服务?通常,SSMS会抱怨,并且既然这样有效,那么这是一个漫长的尝试。但是我将确保不仅运行sql server服务,而且还运行sql browser服务。
下一个?您正在使用.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个)中所使用的那样在该连接构建器中选择SAME提供程序,因此,当您使用测试连接时,至少要有一个已知的工作连接字符串和一个已知的工作连接字符串。给定的提供商,您在这里使用。