无法使用单例 'IMyCustomThing' 中的作用域服务 'IHttpContextAccessor'
Cannot consume scoped service 'IHttpContextAccessor' from singleton 'IMyCustomThing'
我收到这样的错误:
Cannot consume scoped service 'Microsoft.AspNetCore.Http.IHttpContextAccessor' from singleton 'MyNamespace.IMyCustomThing'
我很困惑,因为我通过调用services.AddHttpContextAccessor()
注册了IHttpContextAccessor
。 AddHttpContextAccessor 的代码是 here。相关部分是这样的:
services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
IHttpContextAccessor 已注册为单例。为什么 ASP.Net Core 认为它是范围服务?
注意:如果相关,IMyCustomThing
使用 IHttpContextAccessor
查看是否有当前 HttpContext
,如果没有则采取其他操作。
正如我们在评论中推测的那样,您有一些东西将 IHttpContextAccessor
注册为范围服务。删除那个。
services.AddHttpContextAccessor()
将其注册为单例,因为它是为使用而设计的。
我收到这样的错误:
Cannot consume scoped service 'Microsoft.AspNetCore.Http.IHttpContextAccessor' from singleton 'MyNamespace.IMyCustomThing'
我很困惑,因为我通过调用services.AddHttpContextAccessor()
注册了IHttpContextAccessor
。 AddHttpContextAccessor 的代码是 here。相关部分是这样的:
services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
IHttpContextAccessor 已注册为单例。为什么 ASP.Net Core 认为它是范围服务?
注意:如果相关,IMyCustomThing
使用 IHttpContextAccessor
查看是否有当前 HttpContext
,如果没有则采取其他操作。
正如我们在评论中推测的那样,您有一些东西将 IHttpContextAccessor
注册为范围服务。删除那个。
services.AddHttpContextAccessor()
将其注册为单例,因为它是为使用而设计的。