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

ASP.NET项目Swagger UI无法访问:Mapping not found异常求助

解决Swagger UI访问报错“Mapping not found - index/”的问题

我之前碰到过几乎一模一样的情况——改了Project Url后Swagger崩了,回滚也没用,折腾了好一会儿才搞定。你这个问题本质是修改Project Url时打乱了Swagger的路由映射,哪怕改回去,IIS Express或者项目缓存里的残留配置还在作祟,试试下面这些按优先级排序的解决办法:

1. 先重置IIS Express的站点配置

这是最容易见效的第一步:

  • 先把Visual Studio彻底关掉,再去任务管理器里找到所有iisexpress.exe进程,全部结束掉
  • 找到IIS Express的配置文件夹,路径一般是C:\Users\[你的用户名]\Documents\IISExpress\config
  • 删除里面的applicationhost.config文件(放心,下次启动VS会自动重新生成这个文件)
  • 重新打开项目,启动后再访问Swagger试试

2. 检查SwaggerConfig.cs的路由设置有没有被误改

打开SwaggerConfig.cs,重点确认Swagger UI的路由前缀配置,确保是默认的/swagger/ui:

// 确认这部分配置没有被修改
c.EnableSwaggerUi("/swagger/ui/{*assetPath}", uiConfig =>
{
    // 这里的其他配置不用动,只要路由前缀正确就行
});

如果之前不小心改了路由前缀,改回默认值,然后执行清理解决方案(菜单→生成→清理解决方案),再重新生成项目。

3. 用正确的方式设置启动时打开Swagger

别再改Project Url了!正确的做法是:

  • 打开项目属性的Web标签,把Project Url改回项目根地址(比如http://localhost:54408/)
  • 在Start Action区域选择「Specific page」,输入swagger/ui/index
  • 保存设置后重启项目,这样启动时会自动跳转到Swagger页面,还不会破坏路由

4. 彻底清理项目缓存

如果上面的方法都没用,就来个彻底的缓存清理:

  • 右键项目→清理
  • 右键项目→卸载项目,然后再右键→重新加载项目
  • 手动删除项目目录下的bin和obj文件夹
  • 重新生成解决方案,再启动项目

5. 排查WebApi路由冲突

最后检查一下WebApiConfig.cs里的自定义路由,有没有和Swagger的路径冲突。比如如果有这样的路由:

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "{controller}/{action}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

这种通配性太强的路由可能会拦截Swagger的请求,建议调整路由模板,或者给Swagger的路由设置更高的优先级。

按这个顺序试下来,基本都能解决你的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:45:39