我有一个SignalR 2项目,也使用WebApi,我试图将AutoFac集成到此。signalr,webapi和autofac
最初,我的启动类是这样的:
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
app.MapSignalR();
var httpConfig = new HttpConfiguration();
httpConfig.MapHttpAttributeRoutes();
app.UseWebApi(httpConfig);
}
}
不使用autofac,一切工作正常。现在,我想在AutoFac添加,所以我改变了我的启动类看起来像这样:
public void Configuration(IAppBuilder app)
{
var builder = new ContainerBuilder();
var httpConfig = new HttpConfiguration();
var hubConfig = new HubConfiguration();
// Register your Web API controllers.
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
builder.RegisterHubs(Assembly.GetExecutingAssembly());
var container = builder.Build();
httpConfig.DependencyResolver = new AutofacWebApiDependencyResolver(container);
hubConfig.Resolver = new AutofacDependencyResolver(container);
app.UseAutofacMiddleware(container);
app.MapSignalR("/signalr", hubConfig);
app.UseWebApi(httpConfig);
}
现在发生的事情是我无法拨打电话到我的控制器,因为我得到的每一个404我打电话,之前工作过。我错过了什么?在web api的autofac快速入门指南中,有一个对app.UseAutofacWebApi(config)的调用,但是,该方法不存在,因此,不确定这是否是问题或内容。
因此,根据WebAPI OWIN集成的文档,您添加了Autofac.WebApi2.Owin软件包并且UseAutofacWebApi扩展名不存在?你需要这个。你可以仔细检查? –