我开始将我的 asp.net core RC1 项目转换为 RC2 并面临现在IHttpContextAccessor无法解决的问题。
IHttpContextAccessor
为简单起见,我使用 Visual Studio Template 创建了新的 ASP.NET RC2 项目ASP.NET Core Web Application (.Net Framework)。比我为 HomeController 添加了为我创建的模板的构造函数。
ASP.NET Core Web Application (.Net Framework)
public HomeController(IHttpContextAccessor accessor) { }
在我启动应用程序后,我收到下一个错误:
InvalidOperationException:尝试激活“TestNewCore.Controllers.HomeController”时无法解析“Microsoft.AspNetCore.Http.IHttpContextAccessor”类型的服务。胁 Microsoft.Extensions.Internal.ActivatorUtilities.GetService(IServiceProvider sp, Type type, Type requiredBy, Boolean isDefaultParameterRequired)
在我的实际应用程序中,我需要IHttpContextAccessor在我自己的服务类中解析才能访问_contextAccessor.HttpContext.Authentication和访问_contextAccessor.HttpContext.User. Everthing 在 RC1 中运行良好。那么它怎么可能在 RC2 中呢?
_contextAccessor.HttpContext.Authentication
_contextAccessor.HttpContext.User
IHttpContextAccessor 默认不再绑定,需要自己注册
services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();