Ich habe das Upgrade nach gemacht. http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and- web-api-2
Ich bekomme den Fehler. Hat sonst noch jemand diesen Fehler?
Serverfehler in '/' Anwendung.
Datei oder Assembly 'System.Web.Http, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die Manifestdefinition der gefundenen Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040)
Beschreibung: Während der Ausführung der aktuellen Webanforderung ist eine nicht behandelte Ausnahme aufgetreten. Bitte überprüfen Sie die Stapelverfolgung, um weitere Informationen über den Fehler und dessen Ursprung im Code zu erhalten.Ausnahmedetails: System.IO.FileLoadException: Datei oder Assembly 'System.Web.Http, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die Manifestdefinition der gefundenen Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040)
Quellfehler:
Zeile 48: Zeile 49: Zeile 50:} Zeile 51: Zeile 52: protected void Application_BeginRequest (Objektabsender, EventArgs e)
Quelldatei: d: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ Global.asax.cs Zeile: 50
Assembly Load Trace: Die folgenden Informationen können hilfreich sein, um festzustellen, warum die Assembly 'System.Web.Http, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' nicht geladen werden konnte.
=== Statusinformationen vor dem Binden === LOG: DisplayName = System.Web.Http, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 (vollständig angegeben) LOG: Appbase = file: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/ LOG: Initial PrivatePath = D: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ bin Aufruf der Assembly: ThirdPartyWebAPI, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null. === LOG: Diese Bindung beginnt im Standardladekontext. LOG: Verwenden der Anwendungskonfigurationsdatei: D: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ web.config LOG: Verwenden der Hostkonfigurationsdatei: C: \ Users \ michalc \ Documents \ IISExpress \ config \ aspnet.config LOG: Verwenden der Computerkonfiguration Datei aus C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config. LOG: Referenz nach der Richtlinie: System.Web.Http, Version = 4.0.0.0, Kultur = neutral, PublicKeyToken = 31bf3856ad364e35 LOG: Versuch, eine neue URL-Datei herunterzuladen: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files / root / 9184b2ea / c6d4b139 / System.Web.Http.DLL. LOG: Versuch, eine neue URL-Datei herunterzuladen: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files / root / 9184b2ea / c6d4b139 / System.Web.Http / System.Web.Http .DLL. LOG: Versuch, eine neue URL-Datei herunterzuladen: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL. WRN: Der Vergleich des Baugruppennamens führte zu einer Nichtübereinstimmung: Hauptversion ERR: Die Einrichtung der Baugruppe konnte nicht abgeschlossen werden (hr = 0x80131040). Die Prüfung wurde beendet. Versuch, eine neue URL-Datei herunterzuladen: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files / root / 9184b2ea / c6d4b139 / System.Web.Http / System.Web.Http.DLL . LOG: Versuch, eine neue URL-Datei herunterzuladen: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL. WRN: Der Vergleich des Baugruppennamens führte zu einer Nichtübereinstimmung: Hauptversion ERR: Die Einrichtung der Baugruppe konnte nicht abgeschlossen werden (hr = 0x80131040). Die Prüfung wurde beendet. Versuch, eine neue URL-Datei herunterzuladen: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files / root / 9184b2ea / c6d4b139 / System.Web.Http / System.Web.Http.DLL . LOG: Versuch, eine neue URL-Datei herunterzuladen: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL. WRN: Der Vergleich des Baugruppennamens führte zu einer Nichtübereinstimmung: Hauptversion ERR: Die Einrichtung der Baugruppe konnte nicht abgeschlossen werden (hr = 0x80131040). Die Prüfung wurde beendet. Fehler beim Abschließen der Montage (hr = 0x80131040). Die Prüfung wurde beendet. Fehler beim Abschließen der Montage (hr = 0x80131040). Die Prüfung wurde beendet.
Stapelverfolgung:
[FileLoadException: Datei oder Assembly 'System.Web.Http, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die Manifestdefinition der gefundenen Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040)] ThirdPartyWebAPI.WebApiApplication.Application_Start () in d: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ Global.asax.cs: 50
[HttpException (0x80004005): Datei oder Assembly 'System.Web.Http, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die Manifestdefinition der gefundenen Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040)]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode (HttpContext-Kontext, HttpApplication-App
) +9935033
System.Web.HttpApplication.RegisterEventSubscriptionsWithCIS .InitSpecial (HttpApplicationState-Status, MethodInfo [] -Handler, IntPtr-AppContext, HttpContext-Kontext) +172
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance (IntPtr appContext, HttpContext-Kontext) +336
System.Web.Hosting.PipelineRuntime.InitializeApplication (IntPtr appContext) +296[HttpException (0x80004005): Datei oder Assembly 'System.Web.Http, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die Manifestdefinition der gefundenen Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040)]
System.Web.HttpRuntime.FirstRequestInit (HttpContext-Kontext) +9913572 System.Web.HttpRuntime.EnsureFirstRequestInit (HttpContext-Kontext) +101 System.Web
Versionsinformationen: Microsoft .NET Framework Version: 4.0.30319; ASP.NET-Version: 4.0.30319.18408
quelle
Antworten:
Ich habe dies behoben, indem ich das NuGet-Paket neu installiert habe , wodurch defekte Abhängigkeiten korrigiert werden. Führen Sie im Paketmanager Folgendes aus:
quelle
Verwenden Sie NuGet, um den Web API 2.1 WebHost zu installieren, um den Fehler "System.Web.Http" für Datei oder Assembly konnte nicht behoben werden.
Klicken Sie im Solution Explorer in den Referenzen mit der rechten Maustaste und wählen Sie Nuget-Pakete verwalten. (wenn nicht dort Nuget installieren)
Klicken Sie im Fenster NuGet-Pakete verwalten auf der linken Seite auf Online, suchen Sie dann oben rechts nach Webhost und installieren Sie Microsoft ASP.NET Web API 2.1 Web Host. (Nach der Installation wechselt die Schaltfläche "Installieren" zu einem grünen Häkchen.)
Danach wird das Projekt neu geladen und wenn es erneut erstellt wird, wird der Fehler behoben und das Projekt wird debuggt und ausgeführt. Der Fehler ist behoben und Sie sind möglicherweise 'Die Ressource wurde nicht gefunden. Fügen Sie einfach die URL hinzu (z. B. von localhost: 52088 / zu localhost: 52088api / products).
Ihre Frage war gut und hat mir geholfen.
Hoffe diese Antwort hilft!
quelle
Sie müssen Assembly-Weiterleitungen hinzufügen:
Höchstwahrscheinlich müssen Sie dies für ein paar weitere Assemblys wie Webhosting usw. tun.
quelle
System.Web.Http
.Sie können dies auch über die NuGet Package Manager-Konsole tun
Anschließend können Sie den Verweis auf System.Web.Http.WebHost 5.0 hinzufügen
quelle
Bei der Installation von Web Api 2.2 wurde dieser Fehler gestartet. Ich habe dies zur web.config hinzugefügt und es hat mein Problem gelöst.
quelle
Ich habe einfach
Copy Local = true
die fehlende Baugruppe eingestellt und das hat funktioniert. Dies geschieht natürlich, indem Sie mit der rechten Maustaste auf die fehlende Referenz (die in der Fehlermeldung angegeben ist) klicken und Eigenschaften auswählen. wie nachstehend:Dies sollte dann ein Problem lösen, da möglicherweise mehr als eine Baugruppe das Problem verursacht. Ich habe alle Baugruppen ausgewählt und mit der rechten Maustaste darauf geklickt. ausgewählte Eigenschaften; und setze sie alle auf Copy Local = true; und dann erneut veröffentlichen.
quelle
Die richtige Lösung zur Behebung dieses Problems besteht darin, die folgenden Schritte auszuführen
. Aktualisieren Sie Visual Studio, wenn Sie eine ältere Version auf 15.5.4 haben (optional)
Entfernen Sie alle Bindungsumleitungen aus web.config
Fügen Sie dies der csproj-Datei hinzu:
Bauen.
Im Ordner bin sollte sich eine
(WebAppName).dll.config
Datei befinden.Es sollte Weiterleitungen enthalten. Kopieren Sie diese in die web.config
Entfernen Sie den oben genannten Ausschnitt erneut aus der csproj-Datei
Es sollte funktionieren
Detailed Blog
quelle
Für mich stürzte es nur mit diesem Fehler in einer Produktionsumgebung ab, nicht auf einem lokalen Computer. Was es löste, war, den Inhalt des Ordners / bin zu löschen und ihn dann erneut zu generieren.
quelle
Nur ein offensichtlicher, aber möglicher hilfreicher Hinweis. Denken Sie daran, zu überprüfen, ob die neue Version, die Sie in Ihrer webconfig-Assemblybindung angeben, dieselbe Version ist, auf die Sie in Ihren Projektreferenzen verweisen. (dh während ich dies schreibe ... wäre dies 5.1.0.0, wenn Sie kürzlich ein NUGet auf System.Web.Http durchgeführt haben
quelle
quelle
Dies könnte jemandem helfen.
Ich habe mich für die MVC4 App entschieden.
Projekt ausführen, gearbeitet
Dann installierte einige Pakete wie
Microsoft ASP.NET WEB API 2.2 (4 Pakete)
Microsoft ASP.NET WEB API 2.2 Hilfeseite
Microsoft ASP.NET WEB API 2.2 OWIN
Projekt ausführen, gleicher Fehler wie in Frage gestellt
Lösung:
In der web.config
Problem gelöst
Dann wurde jedoch ein Hotfix- Fehler gefunden. Um ihn zu beheben, gehen Sie zum VIEW- Ordner Ihres MVC4-Projekts, suchen
second
Sie die Datei web.config und ändern Sie die Version von 2.0.0.0 auf 3.0.0.0, wie unten gezeigt.quelle
In meinem Fall fehlte mir tatsächlich meine
web.config
gesamte, die die entsprechenden verbindlichen Weiterleitungen hatte. Durch das Wiederherstellen des wurdeweb.config
der Fehler behoben.quelle
Ich könnte ein ähnliches Problem mit System.Net.HTTP lösen, indem ich in app.config der Hauptanwendung eine Assemblyreferenz hinzufüge.
quelle
Ich habe die Lösung gefunden! Löschen Sie den Ordner mit dem Namen package im Projektverzeichnis und erstellen Sie ihn neu, um ihn auszuführen.
quelle
quelle
JA!!!
In meinem Fall funktioniert es gut .... thnkz
quelle
Ich habe nichts getan, nur Entwicklungs- Bin- Ordner- DLLs in den online bereitgestellten Bin- Ordner kopiert und es hat gut für mich funktioniert.
quelle
Wie andere bereits gesagt haben, installieren Sie das MVC-Paket einfach mit nuget neu in Ihrem Webprojekt. Fügen Sie das MVC-Paket jedoch abhängig vom Webprojekt zu allen Projekten hinzu, z. B. Unit-Tests. Wenn Sie jedes enthaltene Projekt einzeln erstellen, werden Sie feststellen, dass das Projekt aktualisiert werden muss.
quelle
Ich hatte das gleiche Problem und die Neuinstallation des Pakets funktioniert nicht.
Meine Anwendung wird in LocalIIS ausgeführt (nicht in IIS EXPRESS). Ich aktiviere Assembly Load Trace und finde heraus, dass System.Web.Http von unterhalb der temporären Catche geladen werden soll. so entfernen Sie alle fangen Ordner darin.
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporäre ASP.NET-Dateien [meine Anwendung]
quelle
Ich habe dieses Problem gelöst, indem ich die Änderungen, die Nuget
web.config
nach dem Ausführen an mir vorgenommen hatte, zurückgesetzt habenuget
. Setzen Sie die Änderungen auf eine frühere Arbeitsversion zurück.quelle
Was das Problem für mich löste, war die Neuinstallation der Microsoft ASP.NET Web API 2.2-Hilfeseite und der Microsoft ASP.NET Web API 2.2 OWIN- Pakete. Ich habe beide gleichzeitig neu installiert, aber ich denke, es war das erstere, das das Problem behoben hat.
Ich habe die ersten hier angebotenen Lösungen ausprobiert, aber das hat nicht geholfen. Dann habe ich meine Abhängigkeiten mit denen in einem funktionierenden Projekt verglichen (aus einem Kurs über Pluralsight) und die beiden oben genannten Abhängigkeiten waren eine niedrigere Version (5.0.0) ) also habe ich sie auf 5.2.3 aktualisiert und es hat angefangen zu funktionieren.
quelle
Ich hatte dies von einem WCF-Dienst. Für mich (da das Problem in der lokalen Entwicklung angezeigt wurde) musste ich einfach den Inhalt des bin-Ordners unter der Lösung löschen. Der Wiederaufbau funktioniert wieder einwandfrei.
quelle
ASP.NET Version: 4.0.30319.18408 gehört zu .Net4.5 und System.Web.Http Version = 4.0.0.0 ist kompatibel mit .NET4.0. Die Versionen, die Sie haben, sind also nicht kompatibel. Sie sollten System.Web.Http auf Version 5.0.0.0 aktualisieren, die mit .Net4.5 kompatibel ist
quelle
Ich hatte ein ähnliches Problem. Alles hat vorher funktioniert. Es wurde ursprünglich mit Web Forms erstellt und später für einige Dinge mit einer Web-API versehen.
In Visual Studio wurden die Einstellungen für das Veröffentlichungsprofil von Release in Debug geändert. Seltsam, aber genau das hat funktioniert. Also hier teilen.
quelle
Dieses Problem trat bei der Bereitstellung in Azure mithilfe der Veröffentlichungsfunktion auf. Denken Sie daran, die Dateien am Zielort zu löschen.
Publish Settings -> File Publish Options drop down -> Check Remove additional files at destination
Dies löste mein Problem, falls die Leute wie ich danach suchen müssen. In meinem Projekt / meiner Lösung war alles dieselbe Version, nur nicht an dem Ziel, an dem ich bereitgestellt habe.
quelle
Wenn Sie mehrere Projekte für eine Lösung verwenden und die Methode in einem Projekt zu einem anderen Projekt aufrufen, stellen Sie sicher, dass alle Projekte (Projekt und Aufruferprojekt genannt) die eindeutige
'System.Net.Http'
Version verwenden .quelle
Ändern Sie das Specfic-Versionsflag für die DLL in der Referenz von true in false
quelle
Ich hatte das gleiche Problem mit System.Web.Http.WebHost, auf das Version = 5.2.6.0 verwiesen wurde, aber das neueste NuGet-Paket war 5.2.7.0. Ich habe die web.config-Dateien bearbeitet, das NuGet-Paket neu installiert und dann die Visual Studio-Projektdateien für alle meine Projekte bearbeitet, um sicherzustellen, dass keine Verweise auf 5.2.6.0 bestehen bleiben. Auch nach all dem blieb das Problem bestehen.
Dann habe ich im Ordner bin nach dem Projekt gesucht, das die Ausnahme ausgelöst hat. Dort habe ich eine DLL für eines meiner anderen Projekte gefunden, die keine Abhängigkeit darstellt und niemals dort hätte sein dürfen. Ich habe die fehlerhafte DLL (die mit der Version 5.2.6.0 von System.Web.Http.WebHost kompiliert wurde) gelöscht, das problematische Projekt neu erstellt und jetzt funktioniert es.
quelle