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

Azure容器应用无法建立localhost:1433 TCP连接求助

解决Azure容器应用连接SQL Server的TCP连接拒绝问题

核心问题定位

从日志错误信息可直接定位问题:

2023-10-13T04:17:55.853183078Z 2023/10/13 04:17:55 unable to open tcp connection with host 'localhost:1433': dial tcp [::1]:1433: connect: connection refused

你的容器应用正在尝试连接本地(localhost)的1433端口,但Azure容器应用运行环境内未部署SQL Server,这是连接被拒绝的直接原因。之前容器实例能正常连接,大概率是部署时正确覆盖了镜像内的数据库配置,而容器应用部署时未修正该配置。

解决方案步骤

1. 修正数据库连接字符串

将应用中的数据库连接地址从localhost:1433替换为你的Azure SQL Server完全限定域名(格式为{你的SQL服务器名称}.database.windows.net:1433):

  • 若通过环境变量配置:在Azure容器应用的「环境变量」面板中,更新对应变量值为正确的SQL Server地址;
  • 若镜像内硬编码了连接字符串:重新构建镜像并替换localhost为SQL Server域名,或用容器应用的环境变量覆盖镜像默认配置。

2. 验证网络访问权限

  • 检查Azure SQL Server防火墙规则:
    • 将容器应用的出站IP地址(可在容器应用「网络」面板查看)添加到SQL防火墙允许列表;
    • 或开启SQL防火墙的「允许Azure服务和资源访问此服务器」选项(适合无严格IP限制的场景)。
  • 若容器应用启用了VNet集成:
    • 确认SQL Server所在VNet与容器应用VNet已完成对等连接;
    • 在SQL防火墙中添加容器应用VNet的子网范围,或启用SQL Server的VNet端点。

3. 确认IAM与身份验证配置

  • 若使用Azure AD身份验证:
    • 确保容器应用的系统分配身份(Principal ID)已添加到SQL Server的IAM角色(如「SQL DB Contributor」),且连接字符串中指定了AD认证参数(例如Authentication=ActiveDirectoryDefault)。
  • 若使用SQL账号密码验证:
    • 确保容器应用环境变量中正确配置了SQL账号和密码(建议用Azure Key Vault存储敏感信息后挂载到容器应用),且该账号拥有目标数据库的访问权限。

4. 验证配置生效

重新部署容器应用后,查看应用日志确认连接字符串已更新为正确的SQL Server地址,再测试数据库连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 20:05:14