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

ASP.NET Core 6 Web API自定义路由下Swagger UI访问报错求助

问题分析与解决方案

你的问题出在SwaggerUI的SwaggerEndpoint路径配置错误,导致请求路径被重复拼接。

当前你的SwaggerUI路由前缀是ForecastService/swagger,而你配置的SwaggerEndpoint("ForecastService/v1/swagger.json", ...)会基于这个前缀生成完整请求路径:ForecastService/swagger/ForecastService/v1/swagger.json,但实际你的Swagger文档的正确路径是ForecastService/v1/swagger.json(由UseSwagger的RouteTemplate定义),所以出现了404。

修改方案二选一:

方案1:使用相对路径配置SwaggerEndpoint

调整SwaggerEndpoint的路径为相对路径,基于SwaggerUI的路由前缀向上一级:

app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("../v1/swagger.json", "Forecast API");
    c.RoutePrefix = "ForecastService/swagger";
});

方案2:使用绝对路径配置SwaggerEndpoint

直接指定完整的根相对路径:

app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/ForecastService/v1/swagger.json", "Forecast API");
    c.RoutePrefix = "ForecastService/swagger";
});

验证修改效果

修改后重新启动项目,访问http://localhost:5113/ForecastService/swagger/index.html,SwaggerUI就能正确加载ForecastService/v1/swagger.json文档了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 15:20:21