ASP.NET Framework 4.7.2中Swagger UI页面提示资源未找到的问题求助
解决Swashbuckle v5.6.0集成Swagger时资源未找到的问题
以下是针对该问题的排查修复方案:
1. 启用属性路由
你的API控制器使用了属性路由,但需确保项目已启用该功能。在Global.asax或WebApiConfig.cs中添加以下配置:
config.MapHttpAttributeRoutes();
缺少这行配置会导致属性路由失效,Swagger无法识别你的API接口。
2. 确认Swagger UI访问路径
默认Swagger UI的访问路径为/swagger/ui/index,若项目存在虚拟目录,需加上前缀,例如http://localhost:端口号/虚拟目录/swagger/ui/index,检查是否通过正确路径访问。
3. 配置Swagger扫描指定程序集
当前配置未指定扫描程序集,Swagger可能无法定位到API控制器。修改Swagger配置,补充程序集扫描及XML注释配置:
var thisAssembly = typeof(SwaggerConfig).Assembly; GlobalConfiguration.Configuration .EnableSwagger(c => { c.SingleApiVersion("v1", "Prj.OMS"); // 扫描包含API控制器的程序集 c.ScannableAssemblies(thisAssembly); // 可选:启用XML注释,需先在项目属性中勾选生成XML文档 c.IncludeXmlComments($@"{System.AppDomain.CurrentDomain.BaseDirectory}\bin\Prj.OMS.XML"); }) .EnableSwaggerUi();
生成XML文档步骤:右键项目→属性→生成→勾选“XML文档文件”,保留默认路径即可。
4. 验证API接口可用性
先直接访问API接口http://localhost:端口号/api/values/person,若接口本身返回404,说明路由配置存在问题,需先修复API的路由访问,再排查Swagger问题。
内容的提问来源于stack exchange,提问作者Hossein
相关产品推荐
相关产品推荐

