无法访问Azure容器服务中部署的.NET Aspire示例API及监控面板
问题排查方案
一、API访问404错误排查
- 核对Ingress路由配置:确认容器应用的Ingress已正确设置目标端口,需与你的.NET Aspire API项目监听端口一致(通常为5000或8080,可查看项目的
appsettings.json或Program.cs中的端口配置)。同时检查Ingress的路由规则是否指向正确的服务路径,避免额外路径前缀导致匹配失败。 - 查看容器启动与运行日志:通过Azure门户进入容器应用的“日志”页面,或执行命令
az containerapp logs show --name <api-container-name> --resource-group <rg-name>,确认API应用是否正常启动,是否存在端口绑定失败、依赖加载错误等异常信息。 - 验证健康探针配置:若容器应用的健康探针路径或端口配置错误,容器会被标记为不健康,Ingress将拒绝路由流量。检查探针的“路径”是否为API实际存在的健康检查端点(比如
/health),端口是否与应用监听端口一致。 - 检查
azd部署配置:查看项目根目录的azure.yaml文件,确认服务的service配置中是否正确指定了暴露端口与Ingress设置,避免部署时配置被默认值覆盖。
二、监控仪表板认证错误排查
- 调整角色权限:仅添加Contributor角色可能不足以访问Aspire监控仪表板,需为用户分配Container Apps Data Reader和Monitoring Reader角色(作用于容器应用环境或对应的资源组),这两个角色提供了读取监控数据和容器应用状态的必要权限。
- 检查仪表板认证配置:确认Aspire监控仪表板的Azure AD认证设置中,已将你的用户账户添加到允许访问的列表中(若使用了特定安全组,需确保你属于该组)。
- 清除浏览器认证缓存:关闭所有浏览器窗口,清除缓存与Cookie后重新访问仪表板,避免旧的认证会话导致权限验证异常。
- 验证Azure AD应用权限:若仪表板依赖Azure AD应用注册进行认证,需确认该应用已被授予
Microsoft.ContainerApps/containerApps/read和Microsoft.Insights/metrics/read等必要的API权限,且用户已完成权限同意流程。
内容的提问来源于stack exchange,提问作者Mptje
相关产品推荐
相关产品推荐

