asp.net-core - 我们如何在asp.net 2.1核心应用程序的启动类中注册IHttpContextAccessor?
问题描述
我们有一个应用程序,其中 User.Identity.Name 只有一个用户为空。我已将 IHttpContextAccessor 声明为静态,如下所示。
public static IHttpContextAccessor HttpContextAccessor;
我在互联网上找到了一些东西。Asp.net core 将允许一次并发请求。如果我们将 IHttpContextAccessor 声明为静态,则它仅对第一个请求有效。请参考 链接。
根据上述参考,我已将 IHttpContextAccessor 声明从静态更改为只读。我还更改了此 IHttpContextAccessor 声明的类,从静态更改为非静态。所以我创建了对象来访问我们正在访问该类成员的地方的类成员。
但是在启动类中,我可以在配置方法中看到以下代码。由于我已将 IHttpContextAccessor 声明为只读,因此它会为以下代码提供以下编译错误。
getScopedServices.HttpContextAccessor = services.GetService<IHttpContextAccessor>();
上面的代码有什么用?我已经在配置服务部分将 IHttpContextAccessor 注册为单例,如下所示。我们真的需要上面的代码吗?
#region Singleton
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
#endregion Singleton
如果我们从代码中删除以下行会发生什么?请帮助我。
getScopedServices.HttpContextAccessor = services.GetService<IHttpContextAccessor>();
解决方案
推荐阅读
- python - Python Django 操作错误,没有这样的表
- sql - 在数百万行上加速 SQL Server 中的 MERGE
- c++ - antlr visitor:高效查找保留字
- python - Heroku + Celery:关键工人超时 (503)
- ios - 如何在 iOS 9.3.5 上找到适合 v0rtex 漏洞利用的 zone_map 偏移量?
- php - Firebase 在 php 上创建自定义令牌始终在 php 上返回 null
- javascript - 我可以在地图功能中设置状态吗?
- flutter - 当我运行颤振医生 --android-license 时出错
- tekton - 在 Tekton Steps 之间传递变量
- python - 我想要列表中每个名字的计数