none
Estoy usando objetos propios para la DB en ASP.NET Core 2.2 y me esta dando problemas RRS feed

  • Pregunta

  • Muy buenas a todos/as, tengo un problema importante y es que estoy usando ASP.NET Core 2.2 con MySQL para el proyecto de ASP.NET Core 2.2 por una razón de peso ya sé que lógicamente da muchos menos problemas programar con SQL Server porque es asi en este Framework de Microsoft.

    El caso es que el problema es el siguiente:

    An unhandled exception occurred while processing the request.

    InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Identity.RoleManager`1[Domotica_mysql.Data.CustomIdentity.ApplicationRole]' while attempting to activate 'Domotica_mysql.Areas.Usuarios.Controllers.UsuariosController'.

    Microsoft.Extensions.DependencyInjection.ActivatorUtilities.GetService(IServiceProvider sp, Type type, Type requiredBy, bool isDefaultParameterRequired)

    • Stack 
    • Query 
    • Cookies 
    • Headers
            • InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Identity.RoleManager`1[Domotica_mysql.Data.CustomIdentity.ApplicationRole]' while attempting to activate 'Domotica_mysql.Areas.Usuarios.Controllers.UsuariosController'.

              • Microsoft.Extensions.DependencyInjection.ActivatorUtilities.GetService(IServiceProvider sp, Type type, Type requiredBy, bool isDefaultParameterRequired)

              • lambda_method(Closure , IServiceProvider , object[] )

              • Microsoft.AspNetCore.Mvc.Controllers.ControllerActivatorProvider+<>c__DisplayClass4_0.<CreateActivator>b__0(ControllerContext controllerContext)

              • Microsoft.AspNetCore.Mvc.Controllers.ControllerFactoryProvider+<>c__DisplayClass5_0.<CreateControllerFactory>g__CreateController|0(ControllerContext controllerContext)

              • Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)

              • Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync()

              • Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter()

              • Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context)

              • Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)

              • Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync()

              • Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync()

              • Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext)

              • Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)

              • Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)

              • Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMiddleware.Invoke(HttpContext context)

              • Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke(HttpContext httpContext)

          • Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke(HttpContext httpContext)

      • Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

      El proyecto lo tengo en github en esta web:

    • https://github.com/techcomputerworld/domotica-mysql

    • Lo que realmente necesito es saber como solucionar el problema y yo creo que estoy mezclando los objetos de una libreria con los de otra o algo así, pero no se arreglarlo saludos.


    • Editado onzulinapps jueves, 18 de julio de 2019 13:22
    jueves, 18 de julio de 2019 10:08

Todas las respuestas

  • Cuando te da un error  "Unable to resolve service for type " porque no el contenedor de dependencias no sabe como crear el servicio requerido y en estos caso es necesario ver que en la clase Startup este especificado la dependencia deseado.

    En tu caso  el servicio es es RoleManager<ApplicationRole> roleManager y la clase que lo requiere es el UsuariosController.

    Puedes probar agregando el AddRoles en el método ConfigureServices de la clase Startup.

    services.AddDefaultIdentity<ApplicationUser>()
                    .AddDefaultUI(UIFramework.Bootstrap4)
                    .AddRoles<ApplicationRole>()
                    .AddEntityFrameworkStores<ApplicationDbContext>();
    Ya lo probe si funciona . Adicionalmente te falta aplicar una migración.



    viernes, 19 de julio de 2019 16:13
  • Si bueno y ahora lo que me esta dando problemas es al realizar la migración el campo de ApplicationUserId que por cierto no me hace falta, no se como lo has hecho el como has hecho que no te de problemas ese campo ApplicationUserId pues tengo un problema y es que no puedo modificar la migracion ni puedo tampoco resetearlas ni nada, y todo por el campo este de ApplicationUserId, he intentado resetearlas he borrado la base de datos para crearla de nuveo y no me deja hacer nada.
    sábado, 20 de julio de 2019 12:03