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

.Net Core Web API部署AWS成功后访问URL返回404错误如何解决

排查解决步骤

1. 优先验证Swagger访问逻辑

你本地launchsettings.json配置的默认启动路径是swagger,且环境变量为Development。ASP.NET Core默认仅在Development环境下启用Swagger中间件,部署到Elastic Beanstalk默认环境为Production,直接访问根域名会返回404:

  • 先尝试访问{你的部署域名}/swagger,确认是否能打开接口文档页
  • 如需生产环境开启Swagger,修改Program.cs/Startup.cs中Swagger的启用条件,去掉环境判断,或者在Elastic Beanstalk的环境变量中添加ASPNETCORE_ENVIRONMENT = Development

2. 修正端口匹配配置

你的Kestrel配置监听端口为5001,但Elastic Beanstalk默认反向代理规则:

  • Windows IIS宿主默认转发到80端口
  • Linux宿主默认转发到5000端口
    端口不匹配会导致请求无法转发到ASP.NET Core服务,两种修正方案:
  • 方案一:修改launchsettings.json中Kestrel的监听端口为5000
"Kestrel": {
  "Endpoints": {
    "Http": {
      "Url": "http://+:5000"
    }
  }
}
  • 方案二:在Elastic Beanstalk配置中修改反向代理转发端口为5001

3. 确认部署包配置正确

你是多项目解决方案仅部署API项目,需要确认:

  • 发布时选择的启动项目为Matrimony.Api,发布产物包含Matrimony.Api.dll
  • Linux环境部署需要在发布根目录添加Procfile文件,内容为:
web: dotnet Matrimony.Api.dll
  • Windows环境部署需要确认web.config中processPath指向的dotnet命令和dll路径正确

4. 路由规则验证

如果你的API接口加了全局路由前缀(比如[Route("api/[controller]")]),直接访问根域名也会返回404,需要拼接对应的接口路径访问。


内容的提问来源于stack exchange,提问作者Rakesh Ravi G

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:06:00