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

.NET 5.0 Web API部署后访问swagger/index.html返回404问题排查

可能遗漏的配置项排查列表
  • Swagger环境限制未移除:默认.NET Core模板生成的Swagger配置会包在if (env.IsDevelopment())判断块里,AWS部署默认是生产环境,不会触发该分支的Swagger加载逻辑。需要确认Startup.cs里的Swagger注册代码没有限制仅开发环境可用。
  • 反向代理路径映射配置错误:本地带/userService前缀能访问,大概率是本地启动时做了路径前缀适配,部署到AWS后如果通过ALB/API Gateway做路径转发,请求到容器内部时可能已经去掉了/userService前缀,Swagger的路由和UI配置没有适配反向代理的路径规则。可调整配置如下:
// 适配带前缀的访问路径
app.UseSwagger(c =>
{
    c.RouteTemplate = "userService/swagger/{documentname}/swagger.json";
});
app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/userService/swagger/v1/swagger.json", "User Service V1");
    c.RoutePrefix = "userService/swagger";
});
  • 静态文件生成规则缺失:检查项目.csproj文件是否开启了Swagger文档生成配置,缺少该配置会导致发布时没有生成swagger.json文件:
<PropertyGroup>
  <GenerateDocumentationFile>true</GenerateDocumentationFile>
  <NoWarn>$(NoWarn);1591</NoWarn>
</PropertyGroup>
  • Docker发布步骤不全:确认Dockerfile的发布阶段是否完整复制了所有输出文件,有没有误排除Swagger相关静态资源的规则。
  • AWS转发规则配置错误:检查ALB/API Gateway的路径匹配规则,是否将/userService/*的请求正确转发到对应服务的容器实例,有没有路径重写配置错误导致请求路径被篡改。
  • PathBase配置缺失:可在Startup.cs的中间件注册最开头添加app.UsePathBase("/userService"),统一适配反向代理的路径前缀,避免路由匹配错误。

内容的提问来源于stack exchange,提问作者Dibyo Chatterjee

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:54:03