ASP.NET Core 6连接数据库遇Error 26:无法定位指定服务器/实例
核对连接字符串格式
先确认连接字符串里的服务器名称、实例名是否准确。本地SQL Server实例的常见格式:- 默认实例:
Server=.;Database=YourDbName;Trusted_Connection=True;或Server=localhost;Database=YourDbName;Trusted_Connection=True; - 命名实例:
Server=.\SQLEXPRESS;Database=YourDbName;Trusted_Connection=True;(注意实例名要和你安装的一致,比如默认实例是MSSQLSERVER,命名实例常为SQLEXPRESS)
要是用SQL身份验证,记得加上User Id=xxx;Password=xxx;
- 默认实例:
确认SQL Server服务运行状态
按Win+R输入services.msc打开服务列表,找到对应实例的SQL Server服务(比如SQL Server (SQLEXPRESS)),确保它处于正在运行状态,没启动的话右键启动。开启SQL Server Browser服务
如果你用的是命名实例,必须保证SQL Server Browser服务处于运行状态——客户端靠它定位实例。找到这个服务,启动后设置为自动启动,避免重启后失效。尝试IP+端口直连
试试用Server=127.0.0.1,1433;Database=YourDbName;Trusted_Connection=True;连接(1433是SQL Server默认端口)。如果这样能连上,说明实例名解析有问题,重点排查SQL Server Browser服务或实例端口配置。用SSMS测试本地连接
打开SQL Server Management Studio,用和项目里相同的服务器名/实例名连接数据库。如果SSMS也连不上,问题出在SQL Server配置,不是项目代码;如果SSMS能连上,再检查项目里的连接字符串有没有拼写错误、多余空格这类低级问题。检查防火墙规则
就算开了远程连接,本地防火墙可能还是会拦截SQL Server的端口。可以临时关闭防火墙测试,或者在防火墙里添加入站规则,允许SQL Server服务的端口(默认1433)通信。
内容的提问来源于stack exchange,提问作者Amal Bakhsh

