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

Azure App Service配置WEBSITE_RUN_FROM_PACKAGE后.NET API无法运行

.NET API部署到Azure Linux App Service显示默认页面问题排查与修复

核心问题拆解

你的问题根源在于ZIP包目录结构不符合Azure要求,结合Linux App Service的运行机制,具体有这几个关键点:

1. GitHub Action打包时的目录层级错误

在publish作业里,你下载artifact后直接在当前目录执行zip -r,会把自动生成的app-${{ github.run_number }}外层文件夹也打包进去。Azure解压后,所有发布文件都被放到wwwroot/app-${xxx}子目录里,而App Service默认在wwwroot根目录寻找启动程序,自然找不到你的API入口,只能显示默认页面。

2. 手动压缩时的细节遗漏

你手动重新上传仍失败,大概率是没做到这两点:

  • 没有直接选中发布输出的所有文件(而是选了包含这些文件的文件夹),导致ZIP里还是带外层目录
  • 可能没确认Linux下的可执行权限,自包含应用的入口程序需要有可执行权限才能运行

3. 启动命令可能未正确配置

即使文件路径对了,如果没指定启动命令,Linux App Service可能无法识别你的.NET入口程序。


修复方案

1. 修正GitHub Action的打包逻辑

修改publish作业中的Deploy to Azure步骤,先进入artifact文件夹再打包,确保ZIP根目录直接包含发布文件:

- name: Deploy to Azure
  uses: azure/CLI@v1
  with:
    azcliversion: 2.52.0
    inlineScript: |
      # 进入artifact文件夹,确保打包的是文件本身而非外层目录
      cd app-${{ github.run_number }}
      zip -r ../app-${{ github.run_number }}.zip .
      cd ..
      az webapp deployment source config-zip --resource-group App --name App-zip --src app-${{ github.run_number }}.zip

2. 验证ZIP包结构

打包后本地解压检查,确保ZIP根目录下直接有你的App.Api可执行文件、appsettings.json等核心文件,没有多余的外层文件夹。

3. 配置App Service启动命令(可选)

如果修正后仍无法启动,在App Service的配置 > 常规设置里设置启动命令:

./App.Api

(替换成你实际的可执行文件名,比如项目叫MyApi就写./MyApi)

4. 确认WEBSITE_RUN_FROM_PACKAGE配置

确保WEBSITE_RUN_FROM_PACKAGE=1是在App Service的应用设置里配置的,这个参数会让Azure直接从ZIP包运行应用,无需解压到磁盘。


额外优化建议

  • 把actions/checkout@master换成actions/checkout@v4,使用最新稳定版本
  • 如果不需要自包含部署,去掉dotnet publish里的--self-contained参数,Linux App Service自带.NET 8运行时,能大幅减小包体积
  • 在publish作业里加一步验证artifact路径,提前排查目录问题:
- name: Check Artifact Folder
  run: |
    if [ -d "app-${{ github.run_number }}" ]; then
      echo "Artifact found, files inside:"
      ls app-${{ github.run_number }}
    else
      echo "Artifact folder missing, aborting"
      exit 1
    fi

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 07:24:58