从WSL2连接Windows上的SQL Express遇error:25求助
.NET Core API迁移至WSL2后连接Windows SQL Server失败求助
折腾两天没解决,求帮忙。
背景:将.NET Core API从Windows迁移到WSL2(Ubuntu 20.04),数据库运行在Windows系统。执行dotnet ef database update时触发以下错误:
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 25 - Connection string is not valid: Connection string is not valid)
我的连接字符串(IP为占位符):
"Server=192.168.0.1,1433/SQLEXPRESS,1433;Database=MyDatabase;Integrated Security=True;MultipleActiveResultSets=True;Encrypt=no"
已尝试的排查方案:
- 配置Windows防火墙开放1433(SQL Server)和1434(SQL Server Browser)入站端口
- 确认SQL Server和SQL Server Browser服务处于运行状态
- 启用SQL Server网络配置中SQLEXPRESS的TCP/IP协议
- 确保WSL对应的IP地址在TCP/IP属性中处于活跃、启用状态,且TCP端口设为1433
- 将TCP/IP属性的IPAll部分TCP端口设为1433
- 成功ping通目标IP
- 成功telnet目标IP
- 确认实例名称为SQLEXPRESS
- 配置数据库允许远程连接
- 开启SQL Server和Windows混合身份验证模式
- 尝试多种连接字符串变体:添加/移除Encrypt、TrustServerCertificate参数,使用sa账户的User Id和Password
- 尝试多种Server格式:IP,Port、IP,Port/InstanceName、IP/InstanceName、InstanceName、localhost/InstanceName、MachineName/InstanceName、IP/InstanceName,Port
- 在Server格式前添加tcp:前缀
Windows侧测试情况:
执行PowerShell命令:
$sqlConn = New-Object System.Data.SqlClient.SqlConnection $sqlConn.ConnectionString = "Server=localhost,1433;Database=MyDatabase;Encrypt=no;TrustServerCertificate=True;User ID=sa;Password='';Integrated Security=True;MultipleActiveResultSets=True" $sqlConn
输出正常连接信息。省略Encrypt=no会触发自签名SSL证书相关的error:40;移除User Id和Password参数仍可成功连接。
请问还有哪些排查点遗漏了?
内容的提问来源于stack exchange,提问作者gin93r
相关产品推荐
相关产品推荐

