gpt4 book ai didi

c# - 为什么我会收到这个 InvalidOperationException : Unable to resolve service for type 'Microsoft.AspNetCore.Http.RequestDelegate' ?

转载 作者:行者123 更新时间:2023-12-04 00:02:04 29 4
gpt4 key购买 nike

我刚刚从 .NET Core 升级了我的 ASP.NET Core WebApi 项目2.2 3.1 .

我已经修复了所有编译时错误,升级了我的 Nuget 包,现在我可以运行该应用程序了。

但是,当我调用 Build()在我的 IHostBuilder ,我得到以下异常:

InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Http.RequestDelegate' while attempting to activate 'MyProject.Api.Middleware.ExceptionHandlerMiddleware'.



InvalidOperationException

它所指的中间件是相当标准的。

ExceptionHandlerMiddleware.cs
public class ExceptionHandlerMiddleware
{
private readonly RequestDelegate _next;
private readonly ILogger<ExceptionHandlerMiddleware> _logger;

public ExceptionHandlerMiddleware(RequestDelegate next, ILogger<ExceptionHandlerMiddleware> logger)
{
_logger = logger;
_next = next;
}

public async Task InvokeAsync(HttpContext httpContext)
{
// redacted
}
}

我的应用程序初始化的其余部分是相当标准的,从 2.2 到 3.1(2.2 正在工作)我没有太大变化。

我确实从 services.AddMvc() 更改了至 services.AddControllers() .

程序.cs
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}

private static IHostBuilder CreateHostBuilder(string[] args)
{
return Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(builder =>
{
builder.UseSerilog().UseStartup<Startup>();
})
.ConfigureLogging((context, logging) =>
{
logging
.AddConfiguration(context.Configuration.GetSection("Logging"))
.AddConsole()
.AddDebug();
});
}
}


还值得一提的是 ConfigureServices() Startup.cs 中的方法正在调用并且运行良好,但是 Configure() 从不运行 . Build()方法总是在应用程序到达 Configure() 之前将其杀死.

我的创业公司 Configure方法签名如下所示:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)

最佳答案

我今天遇到了同样的问题并解决如下:

在 .net core 2.2 中,我将中间件添加到应用程序构建器中,并将中间件添加到服务集合中。显然,不再需要将中间件添加到服务集合中,并且会导致您发布的异常。

就我而言,删除线

services.AddSingleton<MyMiddleware>();

解决了这个问题。

关于c# - 为什么我会收到这个 InvalidOperationException : Unable to resolve service for type 'Microsoft.AspNetCore.Http.RequestDelegate' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59462356/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com