My global.asax looks like below
private void BuildIocContainer()
    {
        var builder = new ContainerBuilder();
        builder.RegisterModule(new BootstrapModule());
        var container = builder.Build();
        DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
        GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container); //Set the WebApi DependencyResolver
    }
    protected void Application_Start()
    {
        BuildIocContainer();
        AreaRegistration.RegisterAllAreas();
        GlobalConfiguration.Configure(WebApiConfig.Register);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }
I have built a bootstrap module for autofac like the one below
public class BootstrapModule : Autofac.Module
{
    private Assembly AssemblyOf<T>()
    {
        return typeof(T).Assembly;
    }
    private Assembly WebAssembly
    {
        get { return Assembly.GetExecutingAssembly(); }
    }
    private void RegisterMvc(ContainerBuilder builder)
    {
        builder.RegisterType<AsyncControllerActionInvoker>()
            .As<IActionInvoker>();
        builder.RegisterControllers(WebAssembly)
            .InjectActionInvoker();
        builder.RegisterApiControllers(WebAssembly).InjectActionInvoker();
    }
    private void RegisterLogger(ContainerBuilder builder)
    {
        builder.Register(CreateLogger)
            .SingleInstance();
        builder.Register(_ => new NLogWrapper(LogManager.GetLogger("DefaultLogger")))
            .As<Logging.ILogger>()
            .SingleInstance();
    }
    private static System.Func<Type, Logging.ILogger> CreateLogger(IComponentContext componentContext)
    {
        return type => new NLogWrapper(LogManager.GetLogger(type.FullName));
    }
    protected override void Load(ContainerBuilder builder)
    {
        RegisterLogger(builder);
        RegisterMvc(builder);
        builder.RegisterAssemblyTypes(WebAssembly)
                .AsImplementedInterfaces();
        builder.RegisterType<UserService>()
        .As<IUserService>()
        .InstancePerRequest();            
        builder.RegisterAssemblyTypes(typeof(IUserService).Assembly)
               .AsImplementedInterfaces();
        builder.RegisterAssemblyTypes(typeof(IUserRepository).Assembly)
                .AsImplementedInterfaces();
        builder.RegisterFilterProvider();
    }
}
Now, when I try to hit account controller through postman client,
private IUserService _userService;
    public AccountController(IUserService userService)
    {
        _userService = userService;
    }
    // POST api/Account/Register
    [AllowAnonymous]
    [Route("Register")]
    public HttpStatusCode Register(User model)
    {
        if (!ModelState.IsValid)
        {
            return HttpStatusCode.BadRequest;
        }
        // TODO : Write mapper if needed
        var user = new ToolUser()
        {
            FirstName = model.FirstName,
            LastName = model.LastName,
            EmailID = model.EmailID,
            DOB = Convert.ToDateTime(model.DateOfBirth),
            Gender = model.Gender.ToString(),
            TenandID = model.TenantID,
            Password = model.Password
        };
        HttpStatusCode result = _userService.RegisterUser(user);
        return result;
    }
I get the error
"An error occurred when trying to create a controller of type 'AccountController'. Make sure that the controller has a parameterless public constructor."
What am I doing wrong?
 
     
     
    