.NET 6连接远程SQLExpress报网络错误,VS服务器资源管理器可正常连接
.NET 6连接远程SQLExpress失败的解决方案
核心原因及对应解决步骤:
替换为.NET 6官方推荐的数据库驱动
.NET 6及后续版本官方不再优先维护System.Data.SqlClient,转而推荐使用Microsoft.Data.SqlClient——后者针对跨平台和远程连接场景做了适配优化,旧驱动在.NET 6环境下可能存在兼容性问题。
操作步骤:- 移除项目中已安装的
System.Data.SqlClientNuGet包 - 安装
Microsoft.Data.SqlClientNuGet包 - 修改代码中的命名空间引用及相关代码:
using Microsoft.Data.SqlClient; var builder = new SqlConnectionStringBuilder { DataSource = $"{ip}\\SQLEXPRESS, 1433", InitialCatalog = "xxx", UserID = "user", Password = "pass" }; using var thisConnection = new SqlConnection(builder.ConnectionString); thisConnection.Open();
- 移除项目中已安装的
调整连接字符串的端口写法
若已明确指定端口1433,可尝试去掉实例名,直接使用IP:端口的格式,避免实例名与端口解析冲突:DataSource = $"{ip}:1433", // 替换原写法:{ip}\\SQLEXPRESS, 1433注意:此写法要求SQL Server服务确实监听1433端口,且TCP/IP协议已正常启用。
二次确认SQL Server TCP/IP配置
即使已设置过端口,仍需验证以下配置:- 打开「SQL Server配置管理器」→「SQL Server网络配置」→「SQLEXPRESS的协议」,确保TCP/IP处于启用状态
- 双击TCP/IP→切换到「IP地址」选项卡,拉至底部的「IPAll」,确认「TCP端口」设置为1433
- 重启SQL Server(SQLEXPRESS)服务,确保配置生效
检查应用的防火墙出站权限
确认.NET 6应用拥有发起1433端口出站连接的权限:- 打开Windows防火墙→「高级设置」→「出站规则」
- 检查是否存在允许该应用(或.NET 6运行时)访问TCP 1433端口的规则,若缺失则新建对应规则
内容的提问来源于stack exchange,提问作者Carlos M
相关产品推荐
相关产品推荐

