我们有一个ASP.NET MVC 5,EF6,AutoFac应用程序。
所有依赖注入都通过Autofac发生。我们在IUnitOfWork
生命周期范围内注入DbContext
和.InstancePerRequest()
。
有一次,我们在AccountController中注册用户,并在单独的服务中添加额外信息,然后返回到AccountController,将用户重定向回主页/索引。
return Redirect("/#/intake/" + dbUser.IntakeIds.First(x => x.IsLoggedInUser).Id);
重定向成功后,我们再次检索用户并显示它。
但是,额外的信息不存在。
如果我们进入调试模式,慢慢地,一步一步,那么一切正常。
如果我在调用服务后添加Thread.Sleep(1000)
,那么一切正常。
这让我相信重定向到/ home / index会创建一个新请求,从而创建一个新的上下文。旧的上下文可能没有时间完全完成交易?