6

Hola Tengo algunos problemas para habilitar suscripciones personalizado y proveedor de funciones, tengo siguientes errores:ASP.NET MVC 3 Ninject suscripciones personalizado y proveedor de funciones

An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

System.InvalidOperationException: Default Membership Provider could not be found.

Está apuntando a mi mvc3.ninject kernel.Inject(Membership.Provider)

Mi MVC3.Ninject en app_start:

private static void RegisterServices(IKernel kernel) 
{ 
    kernel.Inject(Membership.Provider); 
    kernel.Inject(Roles.Provider); 
    kernel.Bind<IUnitOfWork>().To<EFContext>().InRequestScope(); 
    kernel.Bind<IUzytkownicyRepository>().To<UzytkownicyRepository>().InRequestScope();    
} 

Mi RoleProvider:

public class DziennikRoleProvider : RoleProvider 
{ 
    [Inject] 
    private IUzytkownicyRepository repository { get; set;} 

Mi MembershipProvider:

public class DziennikMembershipProvider : MembershipProvider 
{ 
    [Inject] 
    private IUzytkownicyRepository repository { get; set; } 

Mi archivo WebConfig:

<membership defaultProvider="DziennikMembershipProvider"> 
    <providers> 
    <clear/> 
    <add name="DziennikMembershipProvider" type="Dziennik_MVC.Helpers.DziennikMembershipProvider, Dziennik_MVC" connectionStringName="EFDbContext" 
     applicationName="/" /> 
    </providers> 
</membership> 

<profile> 
    <providers> 
    <clear/> 
    </providers> 
</profile> 

<roleManager defaultProvider="DziennikRoleProvider" enabled="true" cacheRolesInCookie="true"> 
    <providers> 
    <clear /> 
    <add name="DziennikRoleProvider" type="Dziennik_MVC.Helpers.DziennikMembershipProvider, Dziennik_MVC" connectionStringName="EFDbContext" /> 
    </providers> 
</roleManager> 
+0

http://stackoverflow.com/questions/8248545/custom-role-provider-using-di-ninject-throwing-error http://stackoverflow.com/questions/6519720/using-ninject-with-a- custom-role-provider-in-an-mvc3-app http://stackoverflow.com/questions/8409109/how-to-inject-repositories-into-a-custom-membershipprovider –

+0

http://stackoverflow.com/questions/2963611/how-can-you-inject-an-asp-net-mvc2-custom-membership-provider-using-ninject ... y muchos más –

+0

sí, los vi todos, pero la aplicación aún no puede comenzar – Nozi

Respuesta

7

Usted tiene que configurar los enlaces antes de que se inyecte los proveedores.

private static void RegisterServices(IKernel kernel) 
{ 
    kernel.Bind<IUnitOfWork>().To<EFContext>().InRequestScope(); 
    kernel.Bind<IUzytkownicyRepository>().To<UzytkownicyRepository>().InRequestScope(); 

    kernel.Inject(Membership.Provider); 
    kernel.Inject(Roles.Provider); 
} 
1

Tuve el mismo problema. Mi solución fue cambiar el método de repositorio para que sea público. Ninject no puede inyectar en una propiedad privada.

Cuestiones relacionadas