You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux上.NET Core 6 MVC API无法连接本地SQL Server求助

解决方案

1. 修改连接字符串,指定本地回环地址+SQL Server端口

由于API和SQL Server部署在同一服务器,直接使用本地回环地址(127.0.0.1或localhost)并明确指定SQL Server监听端口(默认是1433),完全绕过SQL Server Browser服务的依赖。修改后的连接字符串示例:

"ConnectionStrings": {
    "ConnStr": "Data Source=127.0.0.1,1433;Initial Catalog=<DBNAME>;User Id=<USER>;Password=<PASS>;Integrated Security=False;Encrypt=False",
    "lockerConStr": ""
}
  • 若SQL Server使用非默认端口,将1433替换为实际端口号
  • 添加Encrypt=False匹配你Python脚本的未加密连接模式,避免Linux下默认加密规则导致的连接失败

2. 验证SQL Server的监听配置

确认SQL Server正在监听本地回环地址:

  • 若SQL Server运行在Linux上,执行以下命令查看监听状态:
    ss -tulpn | grep sqlservr
    
    输出需包含0.0.0.0:1433或127.0.0.1:1433,表示SQL Server已开放对应地址的监听
  • 若SQL Server运行在Windows上,打开SQL Server配置管理器,检查SQL Server网络配置中的TCP/IP协议,确保已启用且监听地址包含127.0.0.1

3. 排查Linux服务器安全限制

  • SELinux:临时关闭SELinux测试连接是否恢复:
    sudo setenforce 0
    
    若连接成功,需配置SELinux允许.NET进程访问SQL Server端口:
    sudo semanage port -a -t sql_port_t -p tcp 1433
    
  • 防火墙:检查本地防火墙是否限制了回环接口的1433端口,以firewalld为例开放端口:
    sudo firewall-cmd --add-port=1433/tcp --permanent
    sudo firewall-cmd --reload
    

4. 更新Microsoft.Data.SqlClient包

确保.NET项目使用最新稳定版的Microsoft.Data.SqlClient包,旧版本在Linux环境下可能存在连接兼容性问题。在项目.csproj文件中更新引用:

<PackageReference Include="Microsoft.Data.SqlClient" Version="5.1.5" />

(可替换为当前最新稳定版本)


内容的提问来源于stack exchange,提问作者Syamim Hilmi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 08:10:30