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

Azure Web App部署日志内Azure DevOps Pipeline链接错误,点击出现404

Azure Web App部署日志链接跳转Azure DevOps Pipeline报404错误

问题描述

Azure Web App部署可正常完成,但在Azure门户部署中心点击指向Azure DevOps Pipeline的链接查看构建/部署详情时,出现404页面未找到错误。

环境配置

  • 部署类型:使用Azure DevOps单个YAML Pipeline同时完成构建与发布,部署任务包含应用构建及直接部署至Azure Web App。
  • YAML Pipeline部署步骤简化版:
parameters:
  path_to_project: ''  
  net_version: ''
  artifact_name: ''  
  azure_subscription: ''

steps:  

- task: UseDotNet@2
  condition: ne('${{ parameters.net_version }}', 'globalJson')
  inputs:
    version: '${{ parameters.net_version }}'

- task: NuGetAuthenticate@1
  displayName: 'Authenticate to NuGet'

- task: DotNetCoreCLI@2
  displayName: 'Build'
  inputs:
    command: 'build'
    projects: '${{ parameters.path_to_project }}'
    arguments: ''

- task: DotNetCoreCLI@2
  displayName: 'Publish'
  inputs:
    command: 'publish'
    projects: '${{ parameters.path_to_project }}'
    publishWebProjects: false
    arguments: '--output $(Build.ArtifactStagingDirectory)'

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact'
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: '${{ parameters.artifact_name }}'

- task: DownloadBuildArtifacts@0
  displayName: 'Download Artifact'
  inputs:
    artifactName: ${{ parameters.artifact_name }}
    downloadPath: '$(System.ArtifactsDirectory)/${{ parameters.artifact_name }}'

- task: AzureWebApp@1
  inputs:
    azureSubscription: ${{ parameters.azure_subscription }} 
    appType: webApp
    appName: ${{ parameters.app_name }}
    package: '$(System.ArtifactsDirectory)/**/*.zip' 
    deploymentMethod: 'auto'

观察结果

  • 采用分离的构建和发布流水线的应用,部署日志中的链接可正常跳转至对应流水线;
  • 使用单个YAML Pipeline部署的应用,部署日志中的链接存在错误,点击后Azure DevOps显示“页面未找到”。

相关截图

部署日志中错误的链接示例
Azure DevOps 404错误页面

解决方案

该问题核心原因是单YAML Pipeline场景下,AzureWebApp@1任务默认尝试关联发布流水线ID,但单流水线仅存在构建ID,导致链接指向不存在的资源。以下是三种可行修复方式:

方式1:移除冗余构件步骤,直接使用构建产物部署

单流水线无需先发布再下载构件,直接使用$(Build.ArtifactStagingDirectory)下的产物部署,同时显式指定部署方式为zipDeploy避免自动模式的潜在问题:

# 移除冗余步骤
# - task: PublishBuildArtifacts@1
# - task: DownloadBuildArtifacts@0

# 修改AzureWebApp任务
- task: AzureWebApp@1
  inputs:
    azureSubscription: ${{ parameters.azure_subscription }} 
    appType: webApp
    appName: ${{ parameters.app_name }}
    package: '$(Build.ArtifactStagingDirectory)/**/*.zip' 
    deploymentMethod: 'zipDeploy'

方式2:显式指定资源上下文参数

若必须保留构件发布/下载流程,可在AzureWebApp@1任务中添加resourceGroup和resourceName参数,确保链接关联正确的构建流水线:

- task: AzureWebApp@1
  inputs:
    azureSubscription: ${{ parameters.azure_subscription }} 
    appType: webApp
    appName: ${{ parameters.app_name }}
    package: '$(System.ArtifactsDirectory)/**/*.zip' 
    deploymentMethod: 'auto'
    resourceGroup: '你的资源组名称'
    resourceName: '你的Web App名称'

方式3:升级至AzureWebApp@2任务(推荐)

AzureWebApp@2任务对单流水线场景支持更完善,可自动正确关联构建流水线,直接替换原任务即可:

- task: AzureWebApp@2
  inputs:
    azureSubscription: ${{ parameters.azure_subscription }} 
    appType: webApp
    appName: ${{ parameters.app_name }}
    package: '$(Build.ArtifactStagingDirectory)/**/*.zip' 
    deploymentMethod: 'zipDeploy'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 20:12:41