Azure App Service构建完成后应用未更新问题求助
问题排查方案
核心认知:WEBSITE_RUN_FROM_PACKAGE=1的运行机制
当WEBSITE_RUN_FROM_PACKAGE=1时,Azure Web App直接从部署的zip包加载运行,不会将包内容解压到site/wwwroot或site/repository目录,所以Kudu中site/repository无最新代码是正常现象,无需纠结这个点,重点排查部署的包是否为最新版本。
具体排查步骤
1. 检查Build阶段是否生成了正确的包
你的流水线中缺少.NET项目的编译/发布步骤,直接对$(Build.BinariesDirectory)执行打包操作,该目录可能为空或未包含最新代码:
- 需在
ArchiveFiles@2任务前添加dotnet publish步骤,确保将最新编译的代码输出到$(Build.BinariesDirectory):- task: DotNetCoreCLI@2 displayName: 'Publish .NET application' inputs: command: 'publish' publishWebProjects: true arguments: '--configuration Release --output $(Build.BinariesDirectory)' zipAfterPublish: false - 查看流水线Build阶段的日志,确认
ArchiveFiles@2任务是否成功打包了正确的文件,以及PublishPipelineArtifact@1是否上传了包含最新代码的zip包。
2. 验证部署任务的执行结果
查看AzureRmWebAppDeployment@4任务的日志:
- 确认任务是否成功完成,有无权限错误、包路径错误等异常信息。
- 确认部署的包路径
$(Build.ArtifactStagingDirectory)/*.zip是否指向了正确的最新包。
3. 手动验证流水线生成的包内容
从流水线的publishedApp artifacts中下载zip包,解压后检查是否包含main分支的最新代码变更:
- 如果包内容是旧的,问题出在Build阶段,需确认代码拉取、编译步骤是否正确;
- 如果包内容是新的,问题出在部署到Web App的环节,可尝试手动使用Azure CLI执行zip部署测试:
az webapp deploy --resource-group <你的资源组名> --name <你的WebApp名> --src-path <本地最新包路径> --type zip
4. 清理不必要的应用设置
当前设置中的WEBSITE_ENABLE_SYNC_UPDATE_SITE在包运行模式下作用有限,可暂时移除该设置,避免潜在的配置冲突。
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

