I am getting this error while configuring Autofac with ASP.NET WebAPI.
An error occurred when trying to create a controller of type 'UserController'. Make sure that the controller has a parameterless public constructor.
Startup.cs
public partial class Startup
{
    public void Configuration(IAppBuilder app)
    {
        var file = HostingEnvironment.MapPath("~/log4net.config");
        if (file != null)
        {
            var configFile = new FileInfo(file);
            if (configFile.Exists)
                XmlConfigurator.ConfigureAndWatch(configFile);
            else
                BasicConfigurator.Configure();
        }
        else
        {
            BasicConfigurator.Configure();
        }
        var builder = new ContainerBuilder();
        var config = new HttpConfiguration();
        // Register your Web API controllers.
        builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
        builder.RegisterWebApiFilterProvider(config);
        builder.RegisterModule(new WebModule(app));
        // Register your MVC controllers.
        builder.RegisterControllers(Assembly.GetExecutingAssembly());
        // OPTIONAL: Register model binders that require DI.
        builder.RegisterModelBinders(Assembly.GetExecutingAssembly());
        builder.RegisterModelBinderProvider();
        // OPTIONAL: Register web abstractions like HttpContextBase.
        builder.RegisterModule<AutofacWebTypesModule>();
        // OPTIONAL: Enable property injection in view pages.
        builder.RegisterSource(new ViewRegistrationSource());
        // OPTIONAL: Enable property injection into action filters.
        builder.RegisterFilterProvider();
        // register config
        builder.Register(ct => config).AsSelf().SingleInstance();
        HelpPageConfig.Register(config);
        var container = builder.Build();
        config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
        DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
        app.UseAutofacMiddleware(container);
        app.UseAutofacWebApi(config);
        app.UseAutofacMvc();
        WebApiConfig.Register(config);
        app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
        app.UseWebApi(config);
        config.EnsureInitialized();
    }
}
Global.asax.cs
protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    GlobalConfiguration.Configure(WebApiConfig.Register);
}
WebModule.cs
public class WebModule : Module
{
    private readonly IAppBuilder _app;
    public WebModule(IAppBuilder app)
    {
        _app = app;
    }
    protected override void Load(ContainerBuilder builder)
    {
        // ----  Utilities -----------------------------------
        builder.RegisterType<Log4NetLogger>()
            .As<ILogger>().SingleInstance();
        builder.RegisterType<DataAccessConfigurationSettings>()
            .As<IDataAccessSettings>().SingleInstance();
        builder.RegisterType<ApplicationServicesConfigurationSettings>()
            .As<IApplicationServicesSettings>().SingleInstance();
        builder.RegisterType<ValidationExceptionHandler>()
            .As<IExceptionHandler<ValidationException>>().SingleInstance();
        builder.RegisterType<SqlExceptionHandler>()
            .As<IExceptionHandler<SqlException>>().SingleInstance();
        builder.RegisterType<GeneralExceptionHandler>()
            .As<IExceptionHandler<Exception>>().SingleInstance();
        // ----  Business ------------------------------------
        builder.RegisterType<UserBusiness>()
            .As<IUserBusiness>().InstancePerRequest();
        // ----  Validator -----------------------------------
        builder.RegisterType<UserSignupModelValidator>()
            .AsSelf().SingleInstance();
        // ----  Controllers -----------------------------------
        builder.RegisterType<DeflateCompressionActionFilter>()
            .AsWebApiActionFilterFor<UserController>().InstancePerRequest();
        base.Load(builder);
    }
}
UserController.cs
[RoutePrefix("api/User")]
public class UserController : ApiController
{
    private readonly IUserBusiness _userBusiness;
    public UserController(IUserBusiness userBusiness)
    {
        _userBusiness = userBusiness;
    }
    ...
}
I believe I'm missing some minor thing which I have no idea, any help would be appreciated.