Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • AbsolutelyN 85 posts 433 karma points
    Sep 26, 2017 @ 08:49
    AbsolutelyN
    0

    7.7.1 new users section error with Unity

    Hi

    I'm building a site which uses Microsoft Unity IOC and just upgraded to 7.7.1 from 7.6.5.

    In the new user section I now get the error below. Does anyone know what I need to register with unity to solve this?

    Many thanks AbsolutelyN

    An error occurred when trying to create a controller of type 'UsersController'. Make sure that the controller has a parameterless public constructor.
    
    Stacktrace:
    at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)
       at System.Web.Http.Controllers.HttpControllerDescriptor.CreateController(HttpRequestMessage request)
       at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()
    
    
    Inner Exception
    
    Microsoft.Practices.Unity.ResolutionFailedException: Resolution of the dependency failed, type = "Umbraco.Web.Editors.UsersController", name = "(none)".
     Exception occurred while: while resolving.
     Exception is: InvalidOperationException - The current type, Microsoft.AspNet.Identity.IUserStore`2[Umbraco.Core.Models.Identity.BackOfficeIdentityUser,System.Int32], is an interface and cannot be constructed. Are you missing a type mapping?
     -----------------------------------------------
     At the time of the exception, the container was:
    
     Resolving Umbraco.Web.Editors.UsersController,(none)
     Resolving parameter "backOfficeUserManager" of constructor Umbraco.Web.Editors.UsersController(Umbraco.Web.UmbracoContext umbracoContext, Umbraco.Web.UmbracoHelper umbracoHelper, Umbraco.Core.Security.BackOfficeUserManager`1[[Umbraco.Core.Models.Identity.BackOfficeIdentityUser, Umbraco.Core, Version=1.0.6471.23325, Culture=neutral, PublicKeyToken=null]] backOfficeUserManager)
     Resolving Umbraco.Core.Security.BackOfficeUserManager`1[Umbraco.Core.Models.Identity.BackOfficeIdentityUser],(none)
     Resolving parameter "store" of constructor Umbraco.Core.Security.BackOfficeUserManager`1[[Umbraco.Core.Models.Identity.BackOfficeIdentityUser, Umbraco.Core, Version=1.0.6471.23325, Culture=neutral, PublicKeyToken=null]](Microsoft.AspNet.Identity.IUserStore`2[[Umbraco.Core.Models.Identity.BackOfficeIdentityUser, Umbraco.Core, Version=1.0.6471.23325, Culture=neutral, PublicKeyToken=null],[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] store)
     Resolving Microsoft.AspNet.Identity.IUserStore`2[Umbraco.Core.Models.Identity.BackOfficeIdentityUser,System.Int32],(none)
    at Microsoft.Practices.Unity.UnityContainer.DoBuildUp(Type t, Object existing, String name, IEnumerable`1 resolverOverrides)
       at Microsoft.Practices.Unity.UnityContainer.Resolve(Type t, String name, ResolverOverride[] resolverOverrides)
       at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.GetInstanceOrActivator(HttpRequestMessage request, Type controllerType, Func`1& activator)
       at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)
    Inner Exception
    
    System.InvalidOperationException: The current type, Microsoft.AspNet.Identity.IUserStore`2[Umbraco.Core.Models.Identity.BackOfficeIdentityUser,System.Int32], is an interface and cannot be constructed. Are you missing a type mapping?
    at Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructorStrategy.ThrowForAttemptingToConstructInterface(IBuilderContext context)
       at lambda_method(Closure , IBuilderContext )
       at Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.<>c__DisplayClass1.<GetBuildMethod>b__0(IBuilderContext context)
       at Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(IBuilderContext context)
       at Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(IBuilderContext context)
       at Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(NamedTypeBuildKey newBuildKey)
       at lambda_method(Closure , IBuilderContext )
       at Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.<>c__DisplayClass1.<GetBuildMethod>b__0(IBuilderContext context)
       at Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(IBuilderContext context)
       at Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(IBuilderContext context)
       at Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(NamedTypeBuildKey newBuildKey)
       at lambda_method(Closure , IBuilderContext )
       at Microsoft.Practices.ObjectBuilder2.DynamicBuildPlanGenerationContext.<>c__DisplayClass1.<GetBuildMethod>b__0(IBuilderContext context)
       at Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(IBuilderContext context)
       at Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(IBuilderContext context)
       at Microsoft.Practices.Unity.UnityContainer.DoBuildUp(Type t, Object existing, String name, IEnumerable`1 resolverOverrides)
    
  • AbsolutelyN 85 posts 433 karma points
    Sep 26, 2017 @ 08:56
    AbsolutelyN
    100

    Found the solution - simply add:

    container.RegisterType<UsersController>(new InjectionConstructor());
    

    to the Unity config.

Please Sign in or register to post replies

Write your reply to:

Draft