这个MSDN Blog Post建议使用工厂模式来获取“每个应用程序的每个请求的UserManager实例”。与此同时,我的Web应用程序抛出一个错误,说它是有问题的“,如果同一个上下文实例被多个线程同时访问。”这个博客似乎与这个异常信息相矛盾。是什么赋予了?ASP.NET标识工厂模式是否会破坏EntityFramework DbContext?
,我收到的异常以下调用发生:
IdentityResult result = await UserManager.CreateAsync(user, model.Password);
较大的博客背景:
您可以使用工厂实现从OWIN场景中获得的UserManager 的一个实例。这种模式类似于我们使用 从OWIN上下文中获取AuthenticationManager和 SignOut的AuthenticationManager。这是为应用程序的每个请求获取 UserManager实例的推荐方法。
全部异常文本:
的情况下被创建的模型,而不能使用。如果在 OnModelCreating方法中使用上下文,或者同时由多个线程访问同一上下文实例,则可能会抛出此 异常。请注意,DbContext 和相关类的实例成员不保证是线程安全的。 “
如果是每个请求,你如何从多个线程访问它? –
我想到一个ASP.NET请求可能有多个线程。 –
VS2013 SPA模板是一个非常好的地方,可以将这个(文档记录不完整)的东西从中删除。 – spender