2015-03-05 5 views
7

Ich habe ein einfaches Projekt, das Microsoft.AspNet.WebApi.OwinSelfHost verwendet. Es ist ein Owin selbst gehosteten WebAPI 2 Projekt.Die Projekt ziemlich ähnlich ist: -Autofac Fehler: Datei oder Assembly konnte nicht geladen werden 'System.Web.Http, Version = 5.2.0.0, ...' Mein Projekt ist Owin WebApi2 SelfHost

https://github.com/attilah/AngularJSAuthentication

Der einzige Unterschied, den ich habe, ist mein Sicherheitsmodul in separaten Assembly (alles ähnlich wie oben Projekt) ist. Ich verwende Autofac, um meine Abhängigkeiten aufzulösen.

Dieses Projekt funktioniert, wenn kein Autofac vorhanden ist. Aber sobald ich die Einrichtung versuchen mein Projekt mit der entsprechenden Sicherheitsmodule und Autofac alles, was ich bin vor ist dieser Fehler: -

Could not load file or assembly 'System.Web.Http, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) 

Meine Konfiguration ist sehr viel aus diesem Thread inspiriert: -

Dependency injection not working with Owin self-hosted Web Api 2 and Autofac

Außerdem fand ich jemand anderes mit dieser Abhängigkeit Fehler von Autofac gekämpft und konnte ähnliches Problem durch eine Neuinstallation Microsoft.AspNet.WebApi.WebHost erhalten gelöst:

GlobalConfiguration.Configure() not present after Web API 2 and .NET 4.5.1 migration

Aber das funktioniert nicht für mich, ich weiß nicht warum. Ich habe versucht, alles von Grund auf neu zu installieren, hilft auch nicht. Neben der Tatsache, dass Autofac bei der Neuinstallation auch mehrere Berechtigungsprobleme hat.

Hat jemand Erfahrung mit diesem Fehler? bitte hilfe. Vielen Dank!

Antwort

19

Ich habe es geschafft, dieses Abhängigkeitsproblem mit Hilfe von Kommentar von @ user998660 in above thread zu beheben.

Was ich getan habe ist:

  • ich Recht, die angeklickt System.Web.Http in Referenzen mein Project.
  • bemerkte ich, dass die Version der Assembly durch mein Projekt 5.2.3.0 referenziert ist
  • Aus dem Fehler, der oben Ich weiß, dass Autofac System.Web.Http Version 5.2.0.0 zu verweisen versucht. Ich brauchte ein Mittel, um meiner App mitzuteilen, die neuere Version 5.2.3.0 anstelle von 5.2.0.0 zu verwenden.

Das ist, was ich meine Web.config des <assemblyBinding> Abschnitt hinzuzufügen benötigt:

<dependentAssembly> 
    <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="0.0.0.0-5.2.0.0" newVersion="5.2.3.0" /> 
    </dependentAssembly> 
+0

Ich kann bestätigen, dass das Problem für mich behoben – superlogical

+0

das half mir auch. Sie sollten dies als Antwort markiert haben. – jerbersoft

+0

Alles, was ich tun musste, war das '' Element zu aktualisieren, was @amitthk gepostet hat. Vielen Dank! – danyim

0

Open for Lösung nuget Pakete verwaltet werden, und installieren Sie die neueste Microsoft Asp.net Web Api 2.2 und dadurch gelöst, dass mein Problem.

0

Manchmal kann die Wiederherstellung von .nuget ein Problem verursachen .. obwohl nach dem erfolgreichen Einchecken das Festlegen von disableSourceControlIntegration auf false in der Datei .nuget.config dieses Problem beheben würde. add key = "disableSourceControlIntegration" value = "false"

Verwandte Themen