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

ASP.NET Core报错System.InvalidOperationException:缺少Controllers服务

问题解决:Unable to find the required services 异常

错误原因

你的代码缺少ASP.NET Core控制器运行所需的核心服务注册步骤。错误提示明确要求调用IServiceCollection.AddControllers(),但你的Program.cs仅注册了OpenAPI和DbContext服务,未添加控制器服务,导致app.MapControllers()无法找到依赖服务而抛出异常。

解决方案

在服务注册部分添加AddControllers()方法,具体位置可放在AddOpenApi()之后、AddDbContext()前后均可,修改后的完整代码如下:

using API.Data;
using Microsoft.EntityFrameworkCore;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddOpenApi();
// 注册控制器所需服务
builder.Services.AddControllers();
builder.Services.AddDbContext<StoreContext>(opt => {
    opt.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection"));
});

var app = builder.Build();

app.MapControllers();
Dbinitializer.InitDb(app);
app.Run();

说明

AddControllers()会注册控制器、模型绑定、数据验证等ASP.NET Core MVC控制器运行必需的核心服务,只有先完成这一步注册,后续的MapControllers()才能正常创建控制器端点路由。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 14:27:31