Sab*_*ain 4 c# dependency-injection asp.net-identity asp.net-core
我正在尝试在我的ASP.NET Core MVC App中播种UserRole,但是它引发以下异常。
引发异常:Microsoft.Extensions.DependencyInjection.dll中的“ System.InvalidOperationException”。Microsoft.Extensions.DependencyInjection.dll中发生了类型“ System.InvalidOperationException”的异常,但未在用户代码中处理无法解析类型为“ Microsoft”的服务。 AspNetCore.Identity.IRoleStore
1[Microsoft.AspNetCore.Identity.IdentityRole]' while attempting to activate 'Microsoft.AspNetCore.Identity.AspNetRoleManager1 [Microsoft.AspNetCore.Identity.IdentityRole]'。
services.AddDbContext<AppDbContext>(option =>
option.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddIdentity<AppUser, IdentityRole>(options => { });
Run Code Online (Sandbox Code Playgroud)
private void CreateRoles(IServiceProvider serviceProvider)
{
var roleManager = serviceProvider.GetRequiredService<RoleManager<IdentityRole>>();
var userManager = serviceProvider.GetRequiredService<UserManager<SchoolUser>>();
.................
.................
}
Run Code Online (Sandbox Code Playgroud)
我在Startup.cs 的CreateRoles()内部调用Configure(),它在的第一行抛出上述异常CreateRoles()。异常是DependencyInjection问题,我该如何解决?
看起来您打算将Entity Framework Core用于ASP.NET Core Identity持久性,但是您尚未对此进行设置。IRoleStore等人默认情况下未注册,因为这是允许使用不同持久机制的扩展点。为了在这里使用EF核心,您只需要向添加一个调用AddEntityFrameworkStores,如下所示:
services.AddIdentity<AppUser, IdentityRole>()
.AddEntityFrameworkStores<AppDbContext>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1286 次 |
| 最近记录: |