我试图通过实施Inject
来创建自己的授权过滤器,因此它依赖于存储库和用户管理器(他们使用的是EF)。我试图通过使用bootstrapper
属性解决它,但它会注入一个已处理的实例(这里提出的问题完全相同:MVC3 Action Filter Using Database (EF 4.1 DBContext, Ninject))
所以我尝试使用 public override void OnActionExecuting(HttpActionContext actionContext)
{
UserManager = (UserManager<User>)Startups.NinjectConfig.bootstrapper.Kernel.GetService(typeof(UserManager<User>));
// other repositories are same as user manager.
// check user access
base.OnActionExecuting(actionContext);
}
来获取我的依赖项:
CONNECT BY
它工作正常,我有我的存储库实例,但是当它同时收到两个(或更多)请求时会抛出此异常:
在上一次异步操作完成之前,在此上下文中启动了第二个操作。
Ninject绑定在请求范围内。
为什么会发生这种情况,解决这个问题的最佳方法是什么?