如何解决 Microsoft Visual Studio 2019 中的 InvalidOperationException 错误?
How to resolve the error InvalidOperationException in Microsoft Visual Studio 2019?
当我转到控制器时,它给我这个错误
"InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Identity.UserManager`1[Microsoft.AspNetCore.Identity.IdentityUser]' while attempting to activate 'AvaliacaoRestaurante.Controllers.FotoController'."
是启动时的问题,我必须添加或删除一些东西吗?
services.AddDefaultIdentity<ApplicationUser>(options =>
options.SignIn.RequireConfirmedAccount = true)
.AddRoles<IdentityRole>()
.AddEntityFrameworkStores<AvaliacaoRestaurantesDB>();
services.AddControllersWithViews();
您是否在 ConfigureServices
方法(class 启动)中注册了身份?您必须找到如下一行:
services.AddIdentity<UserIdentity, RoleIdentity>(...)
将上面的代码更改为 Startup.cs 类似的东西。
services.AddIdentity<ApplicationUser, IdentityRole>(options =>
{
options.SignIn.RequireConfirmedEmail = true;
})
.AddEntityFrameworkStores<AvaliacaoRestaurantesDB>();
services.AddControllersWithViews();
并且在注入控制器时必须在控制器中使用相同的 class:-
public FotoController(UserManager<ApplicationUser> userManager)
因为您在启动时使用了 ApplicationUser
,而不是 IdentityUser
,所以此类型未在注入中注册 system.I 认为它会解决您的问题。
当我转到控制器时,它给我这个错误
"InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Identity.UserManager`1[Microsoft.AspNetCore.Identity.IdentityUser]' while attempting to activate 'AvaliacaoRestaurante.Controllers.FotoController'."
是启动时的问题,我必须添加或删除一些东西吗?
services.AddDefaultIdentity<ApplicationUser>(options =>
options.SignIn.RequireConfirmedAccount = true)
.AddRoles<IdentityRole>()
.AddEntityFrameworkStores<AvaliacaoRestaurantesDB>();
services.AddControllersWithViews();
您是否在 ConfigureServices
方法(class 启动)中注册了身份?您必须找到如下一行:
services.AddIdentity<UserIdentity, RoleIdentity>(...)
将上面的代码更改为 Startup.cs 类似的东西。
services.AddIdentity<ApplicationUser, IdentityRole>(options =>
{
options.SignIn.RequireConfirmedEmail = true;
})
.AddEntityFrameworkStores<AvaliacaoRestaurantesDB>();
services.AddControllersWithViews();
并且在注入控制器时必须在控制器中使用相同的 class:-
public FotoController(UserManager<ApplicationUser> userManager)
因为您在启动时使用了 ApplicationUser
,而不是 IdentityUser
,所以此类型未在注入中注册 system.I 认为它会解决您的问题。