无法使用singleton中的作用域服务



我收到了上面的错误,我知道为什么,但我看到的奇怪行为是,它只发生在我们的开发环境中,而不是在我们的暂存或生产环境中,而且它是完全相同的代码。启动时有:

services.AddSingleton<ExcahngeService>();
services.AddScoped<ITradingService, TradingService>();

这会引发错误:"不能使用来自singleton的作用域服务";

这可能是由于环境较慢的时间问题吗?

Scoped instance的生存期是有限的,它只在每个请求中可用。因此,您正在将Scoped服务中的一个实例消耗到Singleton中,并且由于已处理了该作用域服务而引发的错误。将SingletonScoped都设为

作为Microsoft的最佳实践,您应该创建新的作用域并从ServiceProvider获取作用域服务https://learn.microsoft.com/en-us/dotnet/core/extensions/scoped-service

最新更新