问题描述
使用 Azure App Service 将备份还原到新应用时,遇到以下错误:
A TXT record pointing from xxxxxxx.com.cn to xxxxxxxxxxxxxxxxxxxxxxxx was not found.
问题解答
原应用配置了自定义域名,自定义备份保留了域名配置。
还原到新应用时,平台尝试绑定这些域名,但未找到符合目标应用要求的 TXT 验证记录,因此报错。
A / CNAME 记录负责流量指向,TXT 记录用于验证域名所有权。
根域名通常使用 asuid,子域名使用 asuid.<子域名>,记录值以目标应用“自定义域”页面为准。
如果需要继续使用原域名,应优先修正 TXT 记录,等待 DNS 生效后重试;添加 TXT 不会切换流量,域名绑定冲突和 HTTPS 证书仍需单独检查。
如果暂时不需要原域名,可尝试以下缓解步骤:
1:将备份生成的 XML 和 ZIP 文件下载到本地
下载同一次自定义备份的两个文件,保留原始副本,仅修改工作副本。此方法不适用于平台管理的自动备份。
2:修改 XML 及 ZIP 中的 meta 文件,删除自定义域名配置
在 XML 的 HostNames 中删除自定义域名条目,保留默认域名。例如:
<!-- 修改前(命名空间省略) --> <HostNames> <string>自定义域名</string> <string>默认域名</string> </HostNames> <!-- 修改后 --> <HostNames> <string>默认域名</string> </HostNames>
解压 ZIP,在 meta 文件中删除:
<!-- 1. 从 EnabledHostNames 删除 --> <a:string>自定义域名</a:string> <!-- 2. 从 HostNameSslStates 删除整个节点 --> <HostNameSslState> ...自定义域名...SniEnabled...Thumbprint... </HostNameSslState> <!-- 3. 从 HostNames 删除 --> <a:string>自定义域名</a:string>
EnabledHostNames:对应域名条目。HostNameSslStates:对应域名的整个HostNameSslState节点。HostNames:对应域名条目。
实际节点和命名空间以备份为准。不要全局替换域名,以免误改业务内容;保存后检查 XML 结构完整。
3:保存修改并重新打包,上传回 storage account
保持 ZIP 原有目录层级,将 XML 和 ZIP 成对上传到测试容器,保留文件命名对应关系及原始备份。
4:在 restore 时选择重新上传的 ZIP 包
核对目标应用后执行还原,再检查网站访问、应用设置及域名配置。后续如需使用自定义域名,应单独完成验证和 HTTPS 绑定。
注意:手动修改备份可能导致备份无法还原,并非官方推荐的通用流程。务必先在测试应用中验证;还原会停止目标应用,并可能覆盖已有文件和配置。
参考资料
Back up and restore your app in Azure App Service :https://learn.microsoft.com/en-us/azure/app-service/manage-backup?tabs=portal
Set up an existing custom domain in Azure App Service : https://learn.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-custom-domain?tabs=root%2Cazurecli
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!