ASP.NET Core 6 Web API新增Controller未在Swagger UI显示求助
ASP.NET Core 6 Web API控制器Swagger不显示及ConnectionString问题排查
一、先处理NuGet包感叹号问题
- 右键解决方案,选择管理NuGet程序包,切换到「已安装」标签,找到带有感叹号的包,点击「重新安装」修复依赖。
- 或打开Package Manager Console,执行命令:
Update-Package -reinstall,强制重新安装所有项目依赖,解决包损坏、版本不匹配导致的编译或运行异常。
二、Swagger不显示控制器的排查步骤
控制器类合法性检查
- 确认新增控制器继承自
ControllerBase(Web API专用基类),而非MVC的Controller类。 - 确保控制器类带有
[ApiController]特性,Swagger默认仅扫描带有该特性的控制器。 - 检查
[Route]特性配置,比如[Route("api/[controller]")],避免路由格式错误或冲突。
- 确认新增控制器继承自
Swagger服务配置检查
- 打开
Program.cs,查看AddSwaggerGen配置:- 排查是否存在自定义
DocumentFilter/OperationFilter,是否无意中过滤了目标控制器。 - 若配置了
IncludeXmlComments,确认XML注释文件已正确生成且包含新增控制器的注释,可尝试删除旧XML文件后重新生成。
- 排查是否存在自定义
- 确保没有添加限制控制器命名空间、类名的筛选逻辑,比如
IncludeControllersWithAttribute等方法的错误使用。
- 打开
编译缓存清理
- 执行VS菜单「生成>清理解决方案」,再执行「生成>重新生成解决方案」,确保新增控制器代码被正确编译到程序集中。
三、ConnectionString无值问题解决
- 本地环境:检查
appsettings.json(或对应环境的配置文件,如appsettings.Development.json),确认ConnectionStrings节点配置正确:
确保代码中获取连接字符串的名称与配置一致,如"ConnectionStrings": { "DefaultConnection": "Server=.;Database=YourDb;Trusted_Connection=True;TrustServerCertificate=True;" }Configuration.GetConnectionString("DefaultConnection")。 - Azure App Service环境:登录Azure门户,进入目标应用服务的「配置>应用程序设置」,添加
ConnectionStrings项,Azure会优先使用门户配置覆盖本地文件配置,确保名称与代码中使用的一致。
内容的提问来源于stack exchange,提问作者Robert Green MBA
相关产品推荐
相关产品推荐

