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

Azure部署ARM模板时出现默认DNS区域主机名数量超限错误

解决Azure ARM模板部署时的"Too many hostnames in the default DNS zone"错误

错误原因分析

你遇到的这个BadRequest错误,核心原因是Azure App Service的默认域名(.azurewebsites.net后缀)前缀是全局唯一的。每个默认DNS子域(比如yourapp.azurewebsites.net对应的子域)只能绑定一个App Service实例,当你尝试创建第二个使用相同前缀的App Service时,就会触发这个"超出1个主机名限制"的报错。

结合你的场景(从开发资源组导出模板,修改参数后部署到新组),大概率是以下两种情况之一:

  • 你在参数文件中设置的App Service名称,和开发环境中已存在的App Service名称完全一致。因为默认域名是全局生效的,哪怕跨资源组、跨区域,同名的默认域名也不允许重复创建。
  • 你的ARM模板中不小心定义了两个App Service资源,且它们使用了相同的名称(或引用了同一个名称参数),导致部署时尝试在同一个默认DNS子域下创建两个主机名。

解决步骤

  1. 检查并更新App Service名称参数
    打开你的参数文件,找到对应App Service名称的参数(通常命名为siteName、webSiteName这类),将其修改为一个全局唯一的名称。你可以在Azure门户的App Service创建页面先验证这个名称是否可用——如果输入后提示"可用",就说明这个前缀还没被占用。

  2. 排查ARM模板中的重复资源定义
    打开你的ARM模板文件,搜索所有Microsoft.Web/sites类型的资源,确认它们的name属性是否重复:

    • 如果多个App Service引用了同一个名称参数,需要为其中至少一个资源修改名称参数,或者直接指定不同的名称值。
    • 确保没有误导出了两个App Service资源到模板中(比如开发环境中可能有测试用的额外实例,但你不需要部署到新组)。
  3. 处理现有同名资源(可选)
    如果你确实需要在新资源组中使用和开发环境完全相同的App Service名称,那你需要先删除开发环境中的对应App Service实例——不过这一般不推荐,毕竟开发环境的资源可能还需要保留。更稳妥的方式还是给新实例换一个唯一名称,之后再配置自定义域名来统一访问入口。

额外提示

导出ARM模板时,Azure会默认保留原资源的名称和配置,所以部署到新环境时,一定要重点检查那些全局唯一的资源属性(比如App Service名称、存储账户名称等),这些属性很容易因为重复导致部署失败。

内容的提问来源于stack exchange,提问作者Souciance Eqdam Rashti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 03:46:52