Ich habe ein SignalR 2 Projekt, das auch WebApi verwendet und ich versuche, AutoFac in dieses zu integrieren.Signal, Webapi und Autofac
Zunächst sah meine Startup-Klasse wie folgt aus:
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);
}
}
, die nicht Autofac verwenden ist und alles funktioniert. Nun, ich versuche in Autofac hinzuzufügen, so dass ich meine Startklasse geändert wie folgt aussehen:
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);
}
jetzt, was passiert ist, ich bin nicht in der Lage Anrufe an meinen Controller zu machen, wie ich ein 404 bekomme jeden Mal rufe ich an, was vorher funktioniert hat. Was vermisse ich? Auf der Autofac-Schnellstartanleitung für web api gibt es einen Aufruf an app.UseAutofacWebApi (config), jedoch existiert diese Methode nicht, also, nicht sicher, ob das das Problem ist oder was.
Also, pro Dokumente für WebAPI OWIN-Integration, haben Sie das Autofac.WebApi2.Owin-Paket hinzugefügt und die UseAutofacWebApi-Erweiterung ist nicht da? Du brauchst das. Können Sie das überprüfen? –