You need to enable JavaScript to run this app. ASP.NET Core 5加NewtonsoftJson仍报IServiceCollection缺AddControllers错误
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 5加NewtonsoftJson仍报IServiceCollection缺AddControllers错误

问题核心根因

当前代码存在两处关键配置偏差,直接导致AddControllers扩展方法无法被识别:

  • 混淆了ASP.NET Core管道与*传统OWIN(面向.NET Framework的旧管道)*的配置逻辑,引入Microsoft.Owin、OwinStartup这类仅适配旧管道的引用,与ASP.NET Core的服务体系完全不兼容
  • 缺少AddControllers扩展方法所在的核心命名空间与程序集引用,仅添加Newtonsoft.Json相关依赖无法提供该方法
可落地解决步骤
  • 移除错误的旧管道引用
    删除代码顶部的using Microsoft.Owin;、using Owin;,同时删除类上方的[assembly: OwinStartup(typeof(ABSRestService.App_Start.Startup1))]启动特性——该特性仅被.NET Framework的OWIN管道识别,ASP.NET Core运行时不会执行对应逻辑。
  • 补充缺失的框架NuGet包
    通过NuGet包管理器安装与项目版本匹配的核心依赖:
    • Microsoft.AspNetCore.Mvc.Core:该包是提供AddControllers扩展方法的核心来源,注意仅安装Microsoft.AspNetCore.Mvc.NewtonsoftJson包无法解决问题,后者仅提供Newtonsoft.Json的序列化扩展,不包含基础控制器服务注册逻辑
    • 适配ASP.NET Core 5.0的Swashbuckle.AspNetCore包:用于实现Swagger UI认证功能
  • 补充缺失的命名空间引用
    在启动类代码顶部,在现有已引用的命名空间基础上,额外添加using Microsoft.AspNetCore.Mvc;,AddControllers扩展方法就定义在这个命名空间下。
  • 修正服务配置方法的命名
    将当前写的ConfigurationServices方法名修改为*ConfigureServices*,ASP.NET Core的启动框架只会识别固定命名的服务注册方法,原方法名会导致框架跳过服务注册逻辑。
  • 配置Swagger认证逻辑
    在正确的ConfigureServices方法内,按顺序完成服务注册:
    public void ConfigureServices(IServiceCollection services)
    {
        // 注册控制器服务
        services.AddControllers();
        // 配置Newtonsoft.Json序列化(按需添加)
        services.AddControllers().AddNewtonsoftJson();
        // 注册Swagger服务并配置认证规则
        services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new() { Title = "API服务", Version = "v1" });
            // 配置SwaggerUI的Bearer认证输入规则
            c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
            {
                Description = "输入带Bearer前缀的访问Token,格式示例:Bearer {你的token}",
                Name = "Authorization",
                In = ParameterLocation.Header,
                Type = SecuritySchemeType.ApiKey
            });
        });
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 18:36:06