Linux App Service与SQL Server通过VNET随机断连原因排查
私有端点DNS缓存异常
SQL Server的私有域名依赖Azure私有DNS Zone提供解析记录。Linux App Service的DNS缓存可能出现过期后未正确刷新的情况,导致无法解析SQL Server域名。升级App Service Plan时,实例重启或重新分配资源,更容易触发这类缓存问题。VNet集成的DNS配置缺失
检查App Service的VNet集成是否正确关联了包含SQL Server私有DNS Zone的DNS服务器。如果App Service使用的DNS服务器无法访问私有DNS Zone的记录,会间歇性出现解析失败。Linux App Service的DNS解析逻辑和Windows存在差异,可能导致私有DNS记录的解析优先级低于公共DNS,引发随机失败。私有端点网络链路波动
私有端点与App Service子网之间的网络路径可能存在间歇性故障,比如路由表临时变更、NSG规则波动,导致DNS请求无法到达私有DNS服务器。升级App Service Plan时,实例宿主节点变化会引发网络路径重新计算,可能触发这类波动。连接池的DNS缓存未更新
.NETSqlConnection连接池会缓存DNS解析结果。如果SQL Server私有端点的IP发生变动(如SQL Server重启、私有端点重新部署),连接池仍会使用旧IP,导致连接失败。只有当连接池中的连接耗尽后,新连接才会重新解析DNS,因此故障表现为间歇性。Linux DNS客户端的重试/超时设置问题
Linux环境下的DNS客户端可能存在重试次数不足、超时时间过短的情况。当私有DNS服务器响应延迟时,就会触发"Name or service not known"的解析失败错误。
内容的提问来源于stack exchange,提问作者Jan Müller

