所以我有一个所有控制器继承的Base控制器,它实现了ApiController,在覆盖初始化中我有这样的东西:
protected override void Initialize(HttpControllerContext controllerContext)
{
var tenantId= requestUtils.GetFromHeader(controllerContext.Request);
if (tenantId!= null)
log4net.ThreadContext.Properties["tenantId"] = tenantId;
else
log4net.ThreadContext.Properties["tenantId"] = "default";
await unitOfWork.SetTenantIdentifier(tenantIdentifier);
base.Initialize(controllerContext);
}
我需要为单位工作设置tenantId(因为我有多租户解决方案)并且它需要等待它(因为我需要从数据库中获取内容)但是我不能使Initialize成为异步任务所以我试图找到一种解决方法。
答案 0 :(得分:1)
//await unitOfWork.SetTenantIdentifier(tenantIdentifier);
unitOfWork.SetTenantIdentifier(tenantIdentifier).Wait();
您应该验证Wait()上没有死锁风险。