Asp.net web api Autofac未解析WebAPI2控制器的构造函数参数

Asp.net web api Autofac未解析WebAPI2控制器的构造函数参数,asp.net-web-api,owin,autofac,autofac-configuration,Asp.net Web Api,Owin,Autofac,Autofac Configuration,我正在尝试将Autofac for DI容器用于带有WebApi2和OWIN的Asp.Net MVCAP应用程序。My global.asax.cs在应用程序\u Start()中没有任何内容。My startup.cs具有以下配置: public void Configuration(IAppBuilder app) { DependencyInjectionConfig.Configure(app); AreaRegistration.RegisterAllAreas();

我正在尝试将Autofac for DI容器用于带有WebApi2和OWIN的Asp.Net MVCAP应用程序。My global.asax.cs在
应用程序\u Start()
中没有任何内容。My startup.cs具有以下配置:

public void Configuration(IAppBuilder app)
{
    DependencyInjectionConfig.Configure(app);

    AreaRegistration.RegisterAllAreas();
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
}
DependencyInjectionConfig.Configure是:

public static void Configure(IAppBuilder app)
{
    var config = new HttpConfiguration(); //this means webapi controllers don't use DI container
    //var config = GlobalConfiguration.Configuration; //this makes MVC view controllers fail to do anything


    var builder = new ContainerBuilder();
    var assm = Assembly.GetExecutingAssembly();

    //MVC and WebAPI Controllers
    builder.RegisterControllers(assm);
    builder.RegisterApiControllers(assm);
    WebApiConfig.Register(config);

    //Model Binders
    builder.RegisterModelBinders(assm);
    builder.RegisterModelBinderProvider();

    //Modules
    builder.RegisterModule<AutofacWebTypesModule>();

    //MVC Views
    builder.RegisterSource(new ViewRegistrationSource());

    //MVC and WebAPI Filters

    builder.RegisterFilterProvider();
    builder.RegisterWebApiFilterProvider(config);

    //Finally, Any custom registrations
    RegisterComponents(builder, assm);
    /* My items show in the builder as expected at this point */

    //build the container
    var container = builder.Build();
    DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
    config.DependencyResolver = new AutofacWebApiDependencyResolver(container);

    //Special OWIN bits
    app.UseAutofacMiddleware(container);
    app.UseAutofacMvc();
    app.UseAutofacWebApi(config);
    app.UseWebApi(config);
}

例外情况是它找不到无参数构造函数(因为Autofac容器似乎正在休眠)。

构造函数看起来像什么,参数类型是否已注册到容器中?根据您的注释添加了ApiController。此外,
注册表组件(生成器、assm)调用是我所有类型注册的地方,当我快速查看生成器时,它们确实会出现。好吧。。。呵呵。我不知道。是否可以在Owin中打开跟踪以获取更多诊断信息?
public class MessagesController : ApiController
{
     private IMesageHandler MessageHandler {get; set;}
     public MessagesController(IMessageHandler messageHandler)
     {
         this.MessageHandler = messageHandler;
     }
     [HttpGet]
     public string Get()
     {
         return "Hello World";
     }
}