У меня есть проект 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 каждый я делаю звонок, который работал раньше. Что мне не хватает? В руководстве по быстрому запуску autofac для web api есть вызов app.UseAutofacWebApi (config), однако этот метод не существует, поэтому не уверен, что это проблема или что.
Итак, для каждого документа для интеграции WebAPI OWIN вы добавили пакет Autofac.WebApi2.Owin и расширение UseAutofacWebApi не существует? Вам это нужно. Можете ли вы дважды проверить? –