【发布时间】:2018-11-18 21:58:11
【问题描述】:
我遇到了 HttpContext 总是返回 null 的问题。我在下面粘贴了我的代码。我在网上寻找了一个解决方案,虽然有很多我正在尝试做的事情的例子,但我无法解决它。谁能告诉我我做错了什么或其他可能导致这种情况的原因?
public class DatabaseTenantProvider : ITenantProvider
{
private Guid _tenantId;
public DatabaseTenantProvider(TenantContext context, IHttpContextAccessor accessor)
{
//this is always null
var host = accessor.HttpContext.Request.Host.Value;
_tenantId = context.GetTenantId(host);
}
}
在我的创业课上,我有...
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
【问题讨论】:
-
你在哪里访问
DatabaseTenantProvider类? -
来自我的主要上下文。 modelBuilder.Entity
-
你是从后台线程调用
DbContext吗? -
我将 DatabaseTenantProvider 注入到我的主数据库上下文中,以便获取当前的tenantId。我有一个名为“TenantsContext”的第二个数据库上下文,它被注入到 DatabaseTenantProvider 类中。 “TenantsContext”包含方法“GetTenantId”,该方法获取主机并使用它来查询数据库并找到与当前主机头关联的租户 ID。我的问题是 HttpContext 始终为空(当我尝试在 DatabaseTenantProvider 类中访问它时 - 如上所示),这意味着我无法将主机头传递给 GetTenantId 方法。
-
谁能帮我解决这个问题?