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

Azure App Services无法连接Azure Database for PostgreSQL问题排查

Azure App Service容器中.NET Web API连接PostgreSQL失败:Name or service not known

问题场景

在Azure App Service免费层的容器中运行.NET Web API,应用通过读取POSTGRES_CONN_STRING环境变量获取Azure Database for PostgreSQL的连接字符串。本地设置该环境变量后运行完全正常,但在Azure App Service配置区域设置连接字符串时,日志流中出现错误:

System.Net.Sockets.SocketException (00000005, 0xFFFDFFFF): Name or service not known

附Azure App Service配置界面说明:界面中显示连接字符串设置项,名称为POSTGRES_CONN_STRING,类型选择为PostgreSQL。

可能的原因及解决方向

  • 连接字符串名称被Azure自动修改
    Azure App Service会根据你选择的连接字符串类型自动调整环境变量名称。比如选择「PostgreSQL」类型时,设置的POSTGRES_CONN_STRING会被转换为类似POSTGRES_CONN_STRING_POSTGRESQL的格式,导致代码读取不到正确的变量值,最终无法解析数据库地址。
    解决:将连接字符串的类型改为「自定义」,Azure会保留你设置的原变量名;或者修改代码,读取Azure生成的带后缀的环境变量名。

  • 数据库域名解析失败
    免费层App Service容器的网络可能存在限制,导致无法解析Azure PostgreSQL的服务器域名。可以尝试将连接字符串中的域名替换为数据库服务器的公网IP地址进行测试:如果用IP能成功连接,说明是域名解析问题,需要检查App Service的网络配置(如是否启用VNet集成,出站流量是否被限制)。

  • 连接字符串格式错误
    对比本地正常运行的连接字符串,检查Azure配置中的内容是否完全一致,是否存在多余空格、转义字符错误或参数缺失。PostgreSQL标准连接字符串格式示例:

    Host=xxx.postgres.database.azure.com;Database=xxx;Username=xxx;Password=xxx;Ssl Mode=Require
    
  • PostgreSQL防火墙未放行App Service出站IP
    Azure App Service的出站IP地址不在PostgreSQL服务器的防火墙允许列表中,导致无法建立连接。可以在Azure Database for PostgreSQL的「防火墙和虚拟网络」设置中,添加App Service的所有出站IP(可在App Service「属性」页面查看),或临时开启「允许Azure服务和资源访问此服务器」选项测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 03:33:29