我有一個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擴展名不存在?你需要這個。你可以仔細檢查? –