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

.NET 5集成Autofac时配置Swagger触发依赖解析异常如何解决?

问题解决办法

结论

不需要在Autofac中额外注册Swagger相关服务,该错误由ASP.NET Core自带的API Explorer服务未注册导致。

具体修复步骤

  • 第一步:在ConfigureServices方法中注册API Explorer服务,修改你的Controller注册代码如下:
// 原来的AddControllers后追加AddApiExplorer
services.AddControllers().AddApiExplorer();

如果你项目中用的是AddMvc而非AddControllers,则默认已经包含ApiExplorer服务,不需要额外调用该方法。

  • 第二步:修正Swagger配置的名称不一致问题,你当前两处配置的文档名不匹配,会导致后续SwaggerUI加载时出现找不到接口文档的错误:
    1. AddSwaggerGen中SwaggerDoc的第一个参数用了nameof(SRW_CRM).ToLower()
    2. UseSwaggerUI中SwaggerEndpoint的路径参数用了nameof(My_app).ToLower()
      请将两处修改为同一个值,例如统一改为"myapp"。

原理说明

报错中缺失的IApiDescriptionGroupCollectionProvider服务由Microsoft.AspNetCore.Mvc.ApiExplorer包提供,该服务负责收集项目中的接口元数据,是Swagger生成接口文档的必备依赖,默认不会随AddControllers自动注册,需要手动调用AddApiExplorer方法添加。
Swagger相关的所有服务在调用AddSwaggerGen时已经自动注册到.NET的默认服务容器中,只要你正确完成了Autofac和.NET默认容器的集成(即调用UseServiceProviderFactory(new AutofacServiceProviderFactory())完成服务填充),不需要手动在Autofac中注册任何Swagger相关服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:45:00