2

我正在开发 .Net CORE 3.1 Web API。我们使用 BackgroundHostedService 来处理耗时的操作。我们需要从该托管服务访问 HttpContext,如下所示:

    public PermissionHelper(IHttpContextAccessor accessor)
    {
        var routeValue = accessor.HttpContext.GetRouteValue("tenantId");
    }

accessor.HttpContext 在这里为空。

我试图找到一个很好的解决方法。其中之一是在 HttpContext 处理中捕获数据并将该数据传递给托管服务。Microsoft 文档中描述了该方法: Access HttpContext in ASP.NET Core (Section - HttpContext access from a background thread)

它工作正常。但是,当您向项目中添加许多不同的 nuget 包并且这些包访问 HttContext(并且所有这些都发生在 HostedService 中)时,进行此类修复会变得非常痛苦

**我的问题:** 有一些更好的修复/解决方法可以在 Http 请求中制作 HttpContext 的“快照”并将该“快照”传递给托管服务?

4

0 回答 0