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

.NET Framework 4.7.2 Web API集成Swagger遇404路由错误求助

解决思路

针对你遇到的Swagger访问404问题,可按以下步骤排查:

  • 修正Swagger UI访问地址
    默认情况下,Swashbuckle生成的Swagger UI访问路径并非/index.html?url=//swagger.json,不同版本路径有差异:

    • 旧版Swashbuckle:http://localhost:39536/swagger/ui/index
    • 适配.NET Framework的新版Swashbuckle:http://localhost:39536/swagger
      先尝试访问上述标准路径,确认是否能正常加载UI。
  • 调整路由注册顺序与忽略规则
    MVC的默认路由可能拦截Swagger相关请求,需做两处修改:

    1. 在Global.asax的Application_Start方法中,调整注册顺序:
      protected void Application_Start()
      {
          // 先注册Web API配置
          GlobalConfiguration.Configure(WebApiConfig.Register);
          // 再注册Swagger
          SwaggerConfig.Register();
          // 最后注册MVC路由
          RouteConfig.RegisterRoutes(RouteTable.Routes);
      }
      
    2. 在RouteConfig的RegisterRoutes方法中,添加忽略Swagger路径的规则:
      public static void RegisterRoutes(RouteCollection routes)
      {
          routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
          // 添加此行,避免MVC路由匹配Swagger请求
          routes.IgnoreRoute("swagger/{*pathInfo}");
      
          routes.MapRoute(
              name: "Default",
              url: "{controller}/{action}/{id}",
              defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
          );
      }
      
  • 验证swagger.json的可访问性
    Swagger UI依赖正确的swagger.json文件,默认路径为http://localhost:39536/swagger/v1/swagger.json,直接访问该地址确认是否能返回JSON内容。若返回404,需检查SwaggerConfig配置是否正确,确保项目中存在可被Swagger扫描的Web API控制器。

  • 检查Swashbuckle NuGet包版本
    确保安装的Swashbuckle版本适配.NET Framework 4.7.2,版本不匹配可能导致路径或配置失效,建议使用官方推荐的兼容版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:35:26