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

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不显示控制器的排查步骤

  1. 控制器类合法性检查

    • 确认新增控制器继承自ControllerBase(Web API专用基类),而非MVC的Controller类。
    • 确保控制器类带有[ApiController]特性,Swagger默认仅扫描带有该特性的控制器。
    • 检查[Route]特性配置,比如[Route("api/[controller]")],避免路由格式错误或冲突。
  2. Swagger服务配置检查

    • 打开Program.cs,查看AddSwaggerGen配置:
      • 排查是否存在自定义DocumentFilter/OperationFilter,是否无意中过滤了目标控制器。
      • 若配置了IncludeXmlComments,确认XML注释文件已正确生成且包含新增控制器的注释,可尝试删除旧XML文件后重新生成。
    • 确保没有添加限制控制器命名空间、类名的筛选逻辑,比如IncludeControllersWithAttribute等方法的错误使用。
  3. 编译缓存清理

    • 执行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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:13:29