配置虚拟网络后App Service仍无法访问Azure SQL Database的问题排查
解决Azure SQL Database仍拒绝App Service访问的问题
看起来你已经完成了基础的VNET关联配置,但App Service依然在用公网IP访问SQL,这说明出站流量还没按预期走VNET通道。以下是你可能遗漏的关键配置步骤:
1. 开启App Service VNET集成的「Route All」选项
Regional VNET Integration默认只会路由**私有IP范围(RFC1918)**的出站流量,而Azure SQL的公网IP属于公网范围,所以默认不会走VNET通道。你需要强制所有出站流量通过VNET:
- 进入App Service → 网络 → VNET集成 → 点击已连接的VNET
- 勾选「Route all outbound traffic through the VNET」选项并保存
- 或者直接在应用设置里添加
WEBSITE_VNET_ROUTE_ALL = 1,保存后重启App Service
2. 确认App Service集成的子网已启用Microsoft.Sql服务端点
虽然你提到VNET中已显示Microsoft.Sql服务端点,但要确保App Service实际集成的那个子网确实启用了该端点:
- 进入Azure虚拟网络 → 子网 → 找到App Service绑定的子网(比如你创建的
default子网) - 检查「服务端点」列表是否包含
Microsoft.Sql,如果没有,添加后保存
3. 验证SQL防火墙的VNET规则关联的是正确子网
确保你在SQL防火墙中添加的虚拟网络规则,选择的是App Service集成的那个子网,而非VNET内的其他子网:
- 进入SQL Server → 防火墙和虚拟网络 → 找到已添加的VNET规则
- 确认子网名称、地址空间与App Service绑定的子网完全一致
4. 排查自定义路由表的干扰
如果你的VNET配置了自定义路由表,要确保没有规则把SQL的流量重新导向公网:
- 进入虚拟网络 → 路由表 → 找到关联App Service子网的路由表
- 确认没有优先级高于系统路由的规则,将SQL的公网IP段路由到Internet
完成这些配置后,等待5-10分钟让设置生效,再重新测试App Service对SQL的访问,应该就不会再出现公网IP被拒绝的报错了。
内容的提问来源于stack exchange,提问作者Liero
相关产品推荐
相关产品推荐

