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

GitHub Action部署ASP.NET至Azure Web App时找不到工件问题

GitHub Actions部署ASP.NET Core到Azure Web App时找不到Artifact的排查方向

问题描述

首次使用GitHub Actions和Azure部署ASP.NET Core应用至Azure Web App时失败,报错信息:

Error: Unable to download artifact(s): Artifact not found for name: .net-app
        Please ensure that your artifact is not expired and the artifact was uploaded using a compatible version of toolkit/upload-artifact.
        For more information, visit the GitHub Artifacts FAQ: https://github.com/actions/toolkit/blob/main/packages/artifact/docs/faq.md

对应的Workflow文件:

name: Build and deploy ASP.Net Core app to Azure Web App - khj-reservations

on:
  push:
    branches:
      - main
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      contents: read # Required for actions/checkout

    steps:
      - uses: actions/checkout@v4

      - name: Set up .NET Core
        uses: actions/setup-dotnet@v4
        with:
          dotnet-version: '8.x'

      - name: Build with dotnet
        run: dotnet build --configuration Release

      - name: Publish the app
        run: dotnet publish -c Release -o publish

      - name: Upload artifact for deployment job
        uses: actions/upload-artifact@v4
        with:
          name: .net-app
          path: publish

  deploy:
    runs-on: ubuntu-latest
    needs: build
    environment:
      name: 'Production'
      url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
    permissions:
      id-token: write # Required for requesting the JWT
      contents: read  # Required for actions/checkout

    steps:
      - name: Download artifact from build job
        uses: actions/download-artifact@v4
        with:
          name: .net-app
          path: .

      - name: Login to Azure
        uses: azure/login@v2
        with:
          client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_06962391311046B880D14BD1DE44D7F4 }}
          tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_1AAC5E194AEB462799723958F7287DF2 }}
          subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_F8253D89484B4CCA9912CBA4EE376D22 }}

      - name: Deploy to Azure Web App
        id: deploy-to-webapp
        uses: azure/webapps-deploy@v3
        with:
          app-name: 'khj-reservations'
          slot-name: 'Production'
          package: .

已确认upload-artifact和download-artifact版本兼容,且查看错误链接FAQ未找到解决方案,以下是其他可能的排查方向:

可能的原因及排查点

  • Build任务未完整执行:查看Build阶段的日志,确认Upload artifact for deployment job步骤是否成功完成。如果前置步骤(如dotnet publish)失败,artifact根本没有被上传。
  • Artifact名称匹配问题:确认上传和下载时的artifact名称完全一致(包括开头的.),GitHub Actions的artifact名称区分大小写,任何字符差异都会导致找不到。
  • Publish目录为空:在上传artifact前添加ls -la publish命令,检查dotnet publish是否真的生成了文件到指定目录。如果目录为空,上传的artifact自然无效。
  • 权限不足:Build任务当前仅配置了contents: read权限,尝试添加actions: write权限,确保有足够权限将artifact上传至GitHub的action存储空间。
  • 触发逻辑异常:确认触发Workflow的分支是main,且Deploy任务确实在Build任务完成后才执行(虽然配置了needs: build,但可检查Workflow执行时序)。另外,检查Production环境是否有未通过的审批,导致Deploy提前启动。
  • 存储空间不足:检查仓库的artifact存储用量,若空间已满,上传操作可能静默失败。
  • 缓存或旧数据干扰:通过workflow_dispatch手动重新触发Workflow,排除缓存或旧artifact残留的影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 10:48:19