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

Azure DevOps Pipeline运行正常但网站代码未更新问题排查

Azure DevOps Pipeline部署后代码不更新问题排查与解决方案

核心问题根因

结合你提供的Pipeline配置和F1层Linux Azure App Service的运行特性,问题出在以下几个可复现的场景:

  • Pipeline工作区复用导致旧代码残留
    Azure DevOps默认会复用Pipeline运行的工作区目录,拉取新代码时仅做增量更新,旧的构建产物、发布包不会被主动清理。首次创建Pipeline时工作区为全新状态,构建的是最新代码,后续运行时工作区存在旧文件,会导致打包的发布包包含旧代码。
    修复方案:在Pipeline根层级添加工作区清理配置,强制每次运行前清空所有旧文件:
    workspace:
      clean: all
    
    同时在dotnet publish的arguments参数中添加--force,强制覆盖输出目录的旧文件。
  • 部署未触发应用进程重启
    你的AzureRmWebAppDeployment@4步骤没有显式配置重启应用的参数,Linux App Service默认会复用运行中的进程,即使文件更新了,旧进程加载的还是内存中的旧代码。F1层资源受限,进程自动重启的触发阈值更高,经常不会主动重启。
    修复方案:在部署任务的inputs中添加RestartApp: true参数,强制部署完成后重启应用进程:
    - task: AzureRmWebAppDeployment@4
      inputs:
        # 原有配置保持不变
        RestartApp: true
        AppSettings: '-WEBSITE_LOCAL_CACHE_OPTION Off'
    
    额外添加的WEBSITE_LOCAL_CACHE_OPTION参数会关闭Azure App Service的本地文件缓存,避免文件更新后缓存未失效。
  • 通配符匹配导致部署旧包
    你的dotnet publish步骤用**/*.csproj匹配所有项目,发布产物全部放到同一个目录,部署步骤用*.zip匹配包文件,当存在多个zip包时,会优先匹配旧的包文件,导致部署的不是最新构建的产物。
    修复方案:
    1. 将publishWebProjects设为true,自动匹配Web项目,排除类库等非Web项目
    2. 显式指定Web项目的路径,不要用全量通配符
    3. 发布时指定独立的输出目录,部署时直接指定完整包路径,避免通配符匹配错误
  • F1层资源不足导致文件替换失败
    F1层的CPU、内存配额极低,应用运行时会占用大量资源,部署过程中替换文件时会因为文件被进程占用、IO超时等问题导致部分文件未更新。
    修复方案:在部署前后添加启停应用的步骤,部署前停止应用,避免文件被占用,部署完成后再启动:
    # 部署前停止应用
    - task: AzureCLI@2
      inputs:
        azureSubscription: '...nameOfSubscription'
        scriptType: 'bash'
        scriptLocation: 'inlineScript'
        inlineScript: 'az webapp stop --name ...nameOfWebApp --resource-group <你的资源组名称>'
    
    # 原有部署步骤放在中间
    
    # 部署完成后启动应用
    - task: AzureCLI@2
      inputs:
        azureSubscription: '...nameOfSubscription'
        scriptType: 'bash'
        scriptLocation: 'inlineScript'
        inlineScript: 'az webapp start --name ...nameOfWebApp --resource-group <你的资源组名称>'
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:27:03