尝试激活“AspNetCoreRateLimit.IpRateLimitMiddleware”时无法解析“AspNetCoreRateLimit.IProcessingStrategy”类型的服务

Posted

技术标签:

【中文标题】尝试激活“AspNetCoreRateLimit.IpRateLimitMiddleware”时无法解析“AspNetCoreRateLimit.IProcessingStrategy”类型的服务【英文标题】:Unable to resolve service for type 'AspNetCoreRateLimit.IProcessingStrategy' while attempting to activate 'AspNetCoreRateLimit.IpRateLimitMiddleware' 【发布时间】:2021-10-23 13:38:49 【问题描述】:

我使用了 AspNetCoreRateLimit Version="4.0.1" 包,但出现以下异常:尝试激活“AspNetCoreRateLimit.IpRateLimitMiddleware”时无法解析类型“AspNetCoreRateLimit.IProcessingStrategy”的服务,但是当我使用 AspNetCoreRateLimit 包时版本=“3.2.2”它工作。虽然 Version="4.0.1" 是最新的稳定版本,但我无法使用它。如果我继续使用 Version="3.2.2",以后会出现什么样的错误?

【问题讨论】:

【参考方案1】:

根据 AspNetCoreRateLimit 的作者,您必须在 Startup.cs 中添加以下代码行

services.AddSingleton<IProcessingStrategy, AsyncKeyLockProcessingStrategy>();

似乎他们不再注册默认的 IProcessingStrategy。见这里:https://github.com/stefanprodan/AspNetCoreRateLimit/issues/236#issuecomment-883311511

【讨论】:

以上是关于尝试激活“AspNetCoreRateLimit.IpRateLimitMiddleware”时无法解析“AspNetCoreRateLimit.IProcessingStrategy”类型的服务的主要内容,如果未能解决你的问题,请参考以下文章

.Net Core 限流控制-AspNetCoreRateLimit

重新整理 .net core 周边阅读篇————AspNetCoreRateLimit[一]

AspNetCoreRateLimit - ASP.NET Core 速率限制中间件。

Web API 速率限制(四)- 其它和AspNetCoreRateLimit

尝试激活时无法解析服务类型

如何解决“尝试激活''时无法解析类型''的服务”