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

共享主机无法连接Azure SQL托管实例,但Azure应用服务可正常连接

问题分析与解决方案

针对共享主机无法连接Azure SQL托管实例,但Azure应用服务可以正常连接的情况,以下是常见原因及对应的排查、解决步骤:

1. 共享主机出站端口限制

Azure SQL托管实例默认使用1433端口建立连接,部分共享主机会限制出站的1433端口(例如仅允许连接特定服务商的数据库端口,此前AWS RDS的端口未被限制)。

  • 排查方法:在共享主机服务器上执行命令测试端口连通性:
    telnet myserver.database.windows.net 1433
    
    或PowerShell命令:
    Test-NetConnection myserver.database.windows.net -Port 1433
    
  • 解决建议:联系共享主机提供商,确认是否开放1433端口的出站访问;若无法开放,可尝试使用Azure SQL托管实例的专用终结点结合VPN连接(该方案对共享主机可行性较低,优先建议开放端口)。

2. TLS版本兼容性问题

Azure SQL托管实例要求连接使用TLS 1.2或更高版本,部分老旧共享主机服务器可能默认启用TLS 1.0/1.1,导致连接被拒绝。而Azure应用服务默认已配置支持TLS 1.2+,因此可以正常连接。

  • 排查方法:检查共享主机服务器的TLS配置,确认是否启用了TLS 1.2;
  • 解决建议:
    • 联系主机提供商升级服务器TLS版本至1.2;
    • 在Web API代码中强制指定TLS版本(以.NET为例):
      ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
      

3. 共享主机真实出站IP未加入防火墙规则

部分共享主机使用NAT网络,你添加的防火墙规则IP可能是主机的入口IP,而非实际的出站IP,导致Azure SQL托管实例的防火墙拦截了连接请求。

  • 排查方法:在共享主机服务器上访问https://ifconfig.me(或类似工具)获取真实出站IP;
  • 解决建议:将该真实出站IP添加到Azure SQL托管实例的防火墙规则中,等待规则生效后重试连接。

4. SSL证书链验证失败

当连接字符串设置TrustServerCertificate=False时,客户端需要验证Azure SQL托管实例的SSL证书链。Azure应用服务环境已预装所需的DigiCert Global Root G2根证书,但共享主机服务器可能缺少该证书,导致验证失败。

  • 排查方法:临时将连接字符串中的TrustServerCertificate改为True测试(仅用于排查,禁止生产环境使用),若能连接则说明是证书问题;
  • 解决建议:在共享主机服务器上安装DigiCert Global Root G2根证书,或联系主机提供商确认是否已预装该证书。

5. 托管实例公共端点未启用(针对专用托管实例)

若使用的是Azure SQL托管实例(而非单一数据库),需确认是否已启用公共端点。Azure应用服务若与托管实例在同一VNet,可通过专用网络连接,但外部共享主机必须依赖公共端点才能访问。

  • 排查方法:在Azure门户中查看托管实例的“公共端点”配置,确认是否已启用;
  • 解决建议:若未启用公共端点,在Azure门户中开启该功能,并确保防火墙规则允许共享主机的IP访问。

内容的提问来源于stack exchange,提问作者Robert Green MBA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 15:42:47