這個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