如何解决ASP.NET连接SQL Server时报Named Pipes Provider错误40的问题
SQL Server 连接错误(Named Pipes Provider error 40)排查解决步骤
1. 连接字符串配置校验
- 确认实例名称拼写完全正确:SQLEXPRESS默认实例格式为
主机名\\SQLEXPRESS,本地测试用LocalDB实例可写(localdb)\\mssqllocaldb - 检查端口配置是否匹配:SQL Server默认端口为1433,若自定义了实例端口,连接字符串需补充端口参数,示例:
Server=127.0.0.1,1434;Database=你的库名; - 验证身份认证参数正确:SQL身份认证需确保
User ID、Password参数拼写无错;Windows身份认证需添加Integrated Security=True参数
2. SQL Server 服务与远程连接配置检查
- 打开SQL Server配置管理器,确认对应实例的
SQL Server(实例名)服务处于运行状态 - 进入「SQL Server网络配置」-「对应实例的协议」,启用
TCP/IP和Named Pipes协议,修改后需重启SQL服务生效 - 右键TCP/IP协议选择「属性」,切换到IP地址标签页,拉到页面最底部确认IPAll的TCP端口设置为1433(或你自定义的端口)
- 打开SSMS连接到目标实例,右键服务器名称选择「属性」-「连接」,勾选「允许远程连接到此服务器」
3. 防火墙与网络连通性校验
- 暂时关闭服务器端Windows防火墙测试连接,若恢复正常则新增入站规则,开放1433端口(TCP)与1434端口(UDP,对应SQL浏览器服务)
- 本地执行telnet命令验证端口连通性:
telnet 服务器IP 1433,能正常连接说明网络链路无问题 - 若使用云服务器,需确认云服务商安全组也开放了对应SQL端口的入站规则
4. ASP.NET Core 服务配置校验
- 依赖注入注册DbContext时,确认Program.cs/Startup.cs中的配置读取路径正确,无拼写错误,示例代码:
builder.Services.AddDbContext<你的DbContext类名>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
- 确认appsettings.json中的连接字符串节点名称和代码中读取的名称完全一致,注意大小写敏感问题
内容的提问来源于stack exchange,提问作者Ta1to
相关产品推荐
相关产品推荐

