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

ARM模板增量部署时.NET 5 App Service代码被清空的解决方案咨询

解决ARM模板增量部署导致App Service代码被清空的问题

我之前碰到过一模一样的情况,用增量模式重新部署ARM模板时,App Service里的代码莫名被清空,核心原因是增量部署会同步模板定义的属性与现有资源的属性——如果你的模板没明确指定部署源相关配置,ARM会把这些属性重置为默认值,直接清空之前部署的代码。

针对你的.NET 5 App Service模板,这里有两种可靠的解决办法:


方法1:在ARM模板中添加scmType属性锁定部署源

在App Service的siteConfig里新增scmType并设置为None,这样ARM就不会干预部署源的配置,确保已部署的代码保留。修改后的模板片段如下:

"siteConfig": {
  "netFrameworkVersion": "v5.0",
  "scmType": "None", // 新增该行,禁止ARM管理部署源
  "appSettings": [
    // 你的应用设置内容保持不变
  ],
  "metadata": [
    {
      "name": "CURRENT_STACK",
      "value": "dotnet"
    }
  ]
}

scmType: None相当于告诉ARM:这个App Service的部署源(比如Git、Zip部署)由外部管理,不要碰它的现有状态。


方法2:在Azure DevOps部署任务中用IgnoreChanges忽略指定属性

如果不想修改ARM模板,可以在Azure DevOps的ARM模板部署任务里,通过额外参数让部署引擎跳过对部署相关属性的检查。

在任务的Additional arguments字段中输入:

-IgnoreChanges @('Microsoft.Web/sites/deploymentSource', 'Microsoft.Web/sites/siteConfig')

这个参数会让ARM部署时,不对比也不更新指定的这些属性,从而保留App Service的现有代码和配置。


额外说明

你提到其他App Service没有这个问题,大概率是因为那些服务的模板里已经包含了scmType或者部署源配置,或者你没对它们执行过后续的代码部署,所以属性重置没产生影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:40:21