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

排查Azure App Service容器部署DotNet Web API失败问题

排查DotNet Web API部署到Azure App Service容器的"Application Error"问题

以下是具体排查方向:

  • 验证镜像拉取权限与正确性

    • 确认Azure App Service的托管标识(MSI)已被授予ACR的AcrPull角色:在ACR的IAM页面检查权限分配,确保App Service的服务主体/托管标识拥有拉取镜像的权限。
    • 核对镜像地址的完整性:检查App Service容器配置中的镜像地址是否为myacr.azurecr.io/my-repo:_mytag,确认命名空间、仓库名、标签无拼写错误(注意标签_mytag是否为镜像实际存在的有效标签)。
    • 测试本地拉取镜像:执行docker pull myacr.azurecr.io/my-repo:_mytag,确认镜像能正常拉取到本地。
  • 检查容器启动配置与日志

    • 查看容器启动命令:确认镜像内置了正确的CMD或ENTRYPOINT(比如dotnet YourApi.dll),若没有,需在App Service的容器设置中手动指定启动命令。
    • 获取容器详细启动日志:除了az webapp log tail,还可通过Azure门户的App Service > 日志 > 容器日志查看容器启动时的报错信息;或执行az webapp logs download -g myRg -n mywebapp下载完整日志包分析。
    • 验证端口配置:确保DotNet Web API监听的端口与App Service配置一致——默认需监听80/8080端口,若应用使用其他端口,需设置WEBSITES_PORT环境变量指定对应端口。
  • 确认Pipeline部署有效性

    • 检查Azure DevOps Pipeline日志:查看AzureRmWebAppDeployment@4任务的执行详情,确认部署过程无报错(比如镜像不存在、服务连接权限不足等问题)。
    • 验证服务连接权限:确保服务连接对应的主体拥有App Service所在资源组的Contributor权限,以及ACR的AcrPull权限。
  • 本地测试镜像可用性

    • 本地运行镜像:执行docker run -p 8080:80 myacr.azurecr.io/my-repo:_mytag(根据实际端口调整映射),访问http://localhost:8080确认API能正常响应,排除镜像本身的代码或依赖问题。
  • 检查App Service运行状态

    • 确认App Service处于运行状态:在Azure门户的App Service概述页面查看状态,若有异常尝试执行az webapp restart -g myRg -n mywebapp重启服务。
    • 查看资源配额:检查App Service的CPU、内存使用情况,避免因资源耗尽导致容器无法启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 14:56:27