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

通过GitHub部署ASP.NET应用至Azure遇登录错误:无可用订阅

问题诊断与解决方案

核心问题分析

GitHub Actions里的azure/login步骤失败,提示“无可用订阅”、退出码1,说明部署用的服务主体(对应AZUREAPPSERVICE_CLIENTID_xxx)没权限访问指定订阅,或者Secrets配置出错,导致登录后识别不了订阅。

Azure门户显示“部署成功”大概率是状态同步延迟,实际最新部署因为登录失败根本没完成,所以访问到的是空白页面——要么是初始默认页,要么是之前旧部署的残留内容。


分步解决办法

1. 核对GitHub Secrets的准确性

  • 打开GitHub仓库的Secrets,确认AZUREAPPSERVICE_CLIENTID_xxx、AZUREAPPSERVICE_TENANTID_xxx、AZUREAPPSERVICE_SUBSCRIPTIONID_xxx这三个值和Azure门户里的信息完全一致:
    • 登录Azure门户,找Azure Active Directory→应用注册,定位到和Web App关联的服务主体(名称一般和GitHub部署对应),复制它的客户端ID和租户ID。
    • 订阅ID直接从Web App“概述”页面复制,确保是当前Web App所在的订阅。
  • 检查Secrets里有没有多余空格或特殊字符,必须完全匹配。

2. 给服务主体加订阅权限

  • 登录Azure门户,进入目标订阅→访问控制(IAM)→角色分配。
  • 搜索服务主体的名称,确认它至少有网站参与者或参与者角色。
  • 要是没分配角色,点击添加→添加角色分配,选合适的角色,指定该服务主体为成员,完成分配。

3. 修正工作流的路径问题

当前dotnet publish用了环境变量路径,容易出问题,改成明确的本地路径更稳妥:

# 构建阶段的publish步骤
- name: dotnet publish
  run: dotnet publish -c Release -o ./publish

# 上传产物同步改路径
- name: Upload artifact for deployment job
  uses: actions/upload-artifact@v4
  with:
    name: .net-app
    path: ./publish

# 部署阶段的下载步骤改路径
- name: Download artifact from build job
  uses: actions/download-artifact@v4
  with:
    name: .net-app
    path: ./publish

# 部署步骤的package路径同步更新
- name: Deploy to Azure Web App
  id: deploy-to-webapp
  uses: azure/webapps-deploy@v3
  with:
    app-name: 'OmniaWebDevTest'
    slot-name: 'Production'
    package: ./publish

4. 重新触发部署验证

  • 去GitHub仓库的Actions页面,找到失败的工作流,点Re-run jobs重新执行,看登录和部署是否正常。
  • 要是还失败,查看azure/login的详细日志,找更具体的错误(比如租户ID错了、服务主体过期等)。

额外排查点

  • 确认Web App运行时配置:ASP.NET Core 8.x需要在Web App“配置”→“常规设置”里,把**.NET版本**设为.NET 8,运行栈选.NET Core。
  • 打开Web App的日志流(Azure门户→Web App→监控→日志流),看有没有应用启动失败的错误,比如缺依赖、配置错了之类的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 22:55:13