Copied to clipboard

Flag this post as spam?

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


  • AbsolutelyN 38 posts 267 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 38 posts 267 karma points
    Sep 26, 2017 @ 08:56
    AbsolutelyN
    100

    Found the solution - simply add:

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

    to the Unity config.

  • This forum is in read-only mode while we transition to the new forum.

    You can continue this topic on the new forum by tapping the "Continue discussion" link below.

Please Sign in or register to post replies