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

从Visual Studio部署Azure Container App时出现404错误

解决Azure Container App部署ASP.NET Web API后404的问题

以下是具体排查和解决方向:

1. 核对容器端口映射

  • 登录Azure Portal,打开你的Container App,进入「容器」配置页面
  • 确认容器的「端口」设置和Web API监听端口一致:ASP.NET默认监听80或5000,如果你在Program.cs里自定义了端口(比如builder.WebHost.UseUrls("http://*:5000")),这里必须填对应端口
  • 端口不匹配会导致流量无法正确转发到容器内应用,直接返回404

2. 检查Ingress路由配置

  • 进入「路由」配置页:
    • 确认「目标端口」和容器端口完全一致
    • 检查路由规则的路径:如果API有前缀(比如api/),要把路由路径设为api/*;如果根路径就是API入口,留空即可
    • 再次确认「外部访问」已开启(你提到已启用,建议再核对)

3. 关于"internal属性"的正确设置

你提到的"internal属性设为false",实际对应Ingress的「仅限内部」开关:

  • 在「路由」页面的「访问限制」区域,找到「仅限内部」选项,取消勾选(即对应internal=false)
  • 这个选项如果开启,容器App只会允许VNet内部访问,外部请求自然返回404

4. 查看容器启动日志

  • 进入「日志」页面,查看容器启动日志:
    • 确认日志里出现类似Now listening on: http://[::]:80的内容,说明Web API已正确绑定所有IP的端口
    • 如果日志显示绑定的是localhost,说明应用只允许容器内部访问,需要修改Program.cs里的监听配置,改为http://*:端口号

5. 验证API路由和访问URL

  • 检查控制器的路由属性,比如是否有[Route("api/[controller]")],且方法上有[HttpGet]等HTTP动词特性
  • 访问时要使用正确的URL:比如控制器是WeatherForecast,则访问路径应为https://<你的容器App域名>/api/WeatherForecast,直接访问根路径/会返回404(除非你有根路径的API接口)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 17:05:06