尝试使用 Unity.Mvc5 和使用 Identity 2.0 和 Identity 2.0 Samples 样板的 MVC 5 应用程序配置 Unity 时,出现以下异常。我已阅读此 SO Configure Unity DI for ASP.NET Identity,但我仍然不清楚我缺少什么。我在这里做错了什么?
当前类型 System.Data.Common.DbConnection 是一个抽象类,无法构造。您是否缺少类型映射?
[ResolutionFailedException: 依赖解析失败,type = "myApp.Web.Controllers.AccountController", name = "(none)"。异常发生时:解决时。
异常是: InvalidOperationException - 当前类型 System.Data.Common.DbConnection 是一个抽象类,无法构造。您是否缺少类型映射?
在异常发生时,容器是:
解析 myApp.Web.Controllers.AccountController,(none) 解析构造函数 myApp.Web.Controllers.AccountController(myApp.Web.Models.ApplicationUserManager userManager) 的参数 "userManager" 解析 myApp.Web.Models.ApplicationUserManager,(none) 解析参数构造函数 myApp.Web.Models.ApplicationUserManager(Microsoft.AspNet.Identity.IUserStore 1[[myApp.Web.DAL.Profiles.ApplicationUser, myApp.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] store)
Resolving Microsoft.AspNet.Identity.EntityFramework.UserStore
1[myApp.Web.DAL.Profiles.ApplicationUser],(none) 的“存储”(映射自 Microsoft.AspNet.Identity.IUserStore1[myApp.Web.DAL.Profiles.ApplicationUser], (none))
Resolving parameter "context" of constructor Microsoft.AspNet.Identity.EntityFramework.UserStore
1[[myApp.Web.DAL.Profiles.ApplicationUser, myApp.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]](System.Data.Entity.DbContext 上下文) 解析 System.Data.Entity.DbContext ,(none) 解析构造函数 System.Data.Entity.DbContext(System.Data.Common.DbConnection existingConnection, System.Data.Entity.Infrastructure.DbCompiledModel model, System.Boolean contextOwnsConnection) 的参数“existingConnection” 解析 System.Data.Common .DbConnection,(无)
帐户控制器,因为我已对其进行了修改
public AccountController(ApplicationUserManager userManager)
{
_userManager = userManager;
}
private ApplicationUserManager _userManager;
我注册的容器
container.RegisterType<ApplicationUserManager>(new HierarchicalLifetimeManager());
container.RegisterType<IUserStore<ApplicationUser>, UserStore<ApplicationUser>>(new HierarchicalLifetimeManager());