尝试激活“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 速率限制中间件。