wake-up-neo.com

Datei oder Assembly 'System.Web.Http 4.0.0 konnte nach einem Update von 2012 auf 2013 nicht geladen werden

Ich habe das Upgrade entsprechend gemacht. http://www.asp.net/mvc/tutorials/mvc-5/wie-nach-upgrade-an-aspnet-mvc-4-und-web-api-project-to-aspnet-mvc -5-und-Web-API-2

Ich bekomme den Fehler. Hat jemand sonst diesen Fehler?

Serverfehler in '/' Anwendung.

Datei oder Assembly 'System.Web.Http, Version = 4.0.0.0, .__ konnte nicht geladen werden. Kultur = neutral, PublicKeyToken = 31bf3856ad364e35 'oder eines davon Abhängigkeiten. Die Manifestdefinition der gefundenen Assembly lautet nicht passen Sie die Assembly-Referenz an. (Ausnahme von HRESULT: 0x80131040)
Beschreibung: Während der Ausführung von .__ ist eine nicht behandelte Ausnahme aufgetreten. die aktuelle Webanfrage. Bitte überprüfen Sie die Stack-Ablaufverfolgung auf weitere Informationen über den Fehler und den Ursprung des Codes. 

Ausnahmedetails: System.IO.FileLoadException: Datei .__ konnte nicht geladen werden. oder Assembly 'System.Web.Http, Version = 4.0.0.0, Kultur = neutral, PublicKeyToken = 31bf3856ad364e35 'oder eine seiner Abhängigkeiten. Das Die Manifestdefinition der lokalisierten Assembly stimmt nicht mit der Assembly überein Referenz. (Ausnahme von HRESULT: 0x80131040)

Quellfehler: 

Zeile 48: Zeile 49: Zeile 50:} Zeile 51: Zeile 52: protected void Application_BeginRequest (object Sender, EventArgs e)

Quelldatei: d:\SM\7.4Test\WebAPIServerV2\ThirdPartyWebAPI\Global.asax.cs Zeile: 50 

Assembly Load Trace: Die folgenden Informationen können hilfreich für .__ sein. Ermitteln Sie, warum die Assembly 'System.Web.Http, Version = 4.0.0.0, Kultur = neutral, PublicKeyToken = 31bf3856ad364e35 'konnte nicht geladen werden.

=== 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 Aufrufen von Assembly: ThirdPartyWebAPI, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null . === LOG: Diese Bindung wird im Standardladekontext gestartet. LOG: Verwenden der Anwendungskonfigurationsdatei: D:\SM\7.4Test\WebAPIServerV2\ThirdPartyWebAPI\web.config LOG: Verwenden von Host-Konfigurationsdatei: C:\Benutzer\michalc\Documents\IISExpress\config\aspnet.config LOG: Verwenden von Maschinenkonfigurationsdatei von 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 von Download der neuen URL Datei: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET-Dateien/root/9184b2ea/c6d4b139/System.Web.Http.DLL. LOG: Versuch des Herunterladens einer neuen URL Datei: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Dateien/root/9184b2ea/c6d4b139/System.Web.Http/System.Web.Http.DLL. LOG: Versuch des Herunterladens einer neuen URL Datei: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL. WRN: Der Vergleich des Assemblynamens führte zu einem Konflikt: Major Version ERR: Installation der Assembly konnte nicht abgeschlossen werden (hr = 0x80131040) . Die Prüfung wurde abgebrochen.

Stapelverfolgung: 

[FileLoadException: Datei oder Assembly 'System.Web.Http, .__ konnte nicht geladen werden. Version = 4.0.0.0, Kultur = neutral, PublicKeyToken = 31bf3856ad364e35 'oder eine seiner Abhängigkeiten. Die Manifestdefinition der gefundenen Assembly stimmt nicht mit der Assembly-Referenz ü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 konnte nicht geladen werden 'System.Web.Http, Version = 4.0.0.0, Kultur = neutral, PublicKeyToken = 31bf3856ad364e35 'oder eine seiner Abhängigkeiten. Das Die Manifestdefinition der lokalisierten Assembly stimmt nicht mit der Assembly überein Referenz. (Ausnahme von HRESULT: 0x80131040)]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode (HttpContext Kontext, HttpApplication-App) +9935033
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS (IntPtr AppContext, Kontext HttpContext, MethodInfo [] - Handler) +118
System.Web.HttpApplication.InitSpecial (HttpApplicationState-Status, MethodInfo [] - Handler, IntPtr appContext, HttpContext-Kontext) +172
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance (IntPtr AppContext, HttpContext-Kontext) +336



Versionsinformationen: Microsoft .NET Framework Version: 4.0.30319; ASP.NET-Version: 4.0.30319.18408

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18408

173

Ich habe das Problem behoben, indem ich das NuGet-Paket neu installiere , wodurch gebrochene Abhängigkeiten korrigiert werden. Führen Sie im Paket-Manager Folgendes aus:

Update-Package Microsoft.AspNet.WebApi -reinstall
274
Pathoschild

Um die Datei "Datei.Web.Http" konnte nicht geladen werden, oder den Assembly-Fehler "System.Web.Http".

Klicken Sie im Lösungs-Explorer in den Referenzen mit der rechten Maustaste und wählen Sie Nuget-Pakete verwalten aus. (falls nicht dort nuget installieren)

enter image description here

Klicken Sie im Fenster NuGet-Pakete verwalten auf der linken Seite auf Online, suchen Sie dann oben rechts nach Web Host und installieren Sie Microsoft ASP.NET Web API 2.1 Web Host. (Nach der Installation wechselt die Installationsschaltfläche zu einem grünen Haken.)

Danach wird das Projekt neu geladen und wenn es erneut erstellt wird, wird der Fehler behoben und das Projekt debuggt und ausgeführt. Der Fehler wird verschwunden sein und möglicherweise lautet 'Die Ressource kann nicht gefunden werden. Hängen Sie einfach die URL an (ex localhost: 52088/localhost: 52088API/products).

Ihre Frage war gut und hat mir geholfen.

Hoffe, diese Antwort hilft!

84
Catto

Sie müssen Assembly-Weiterleitungen hinzufügen:

<configuration>

   ....

   <runtime>
      <assemblyBinding>
    <dependentAssembly>
        <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="5.0.0.0" />
      </dependentAssembly>
      </assemblyBinding>
   </runtime>

   ...

</configuration>

Wahrscheinlich müssen Sie dies für ein paar weitere Baugruppen wie Webhosting usw. tun.

58
Aliostad

Oder Sie können dies über die NuGet Package Manager Console tun

 Install-Package Microsoft.AspNet.WebApi -Version 5.0.0

Dann können Sie den Verweis auf System.Web.Http.WebHost 5.0 hinzufügen

16
Sameer

Bei der Installation von Web Api 2.2 wurde dieser Fehler gestartet. Ich habe dies der web.config hinzugefügt und mein Problem gelöst.

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
  </dependentAssembly>
15
jhilden

Ich habe einfach Copy Local = true auf die fehlende Assembly gesetzt 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:

 enter image description here

Dies sollte dann ein Problem lösen, da möglicherweise mehr als eine Assembly das Problem verursacht. Ich habe alle Assemblys ausgewählt und rechtsklicken. ausgewählte Eigenschaften; und setze sie alle auf Copy Local = true; und dann erneut veröffentlichen.

4
t_plusplus

Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus

. Aktualisieren Sie Visual Studio, falls Sie eine ältere Version haben, auf 15.5.4 (optional).

  1. Entfernen Sie alle Bindungsumleitungen aus der Datei web.config

  2. Fügen Sie dies der Datei csproj hinzu:

 <PropertyGroup>
  <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
  <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
  1. Bauen.

  2. Im bin-Ordner sollte sich eine (WebAppName).dll.config-Datei befinden.

  3. Es sollte Weiterleitungen enthalten. Kopieren Sie diese in die web.config

  4. Entfernen Sie den obigen Ausschnitt erneut aus der Datei csproj

  5. Es sollte funktionieren

Detailed Blog

3
Sajeetharan

Nur ein naheliegender, aber möglicher hilfreicher Hinweis. Denken Sie daran, zu überprüfen, ob die neue Version, die Sie in Ihrer webconfig Assembly-Bindung angeben, dieselbe Version ist, auf die Sie in Ihren Projektreferenzen verweisen. (dh wenn ich dies schreibe ... wäre dies 5.1.0.0, wenn Sie kürzlich ein NUGet in System.Web.Http gemacht haben

2
Jim Taliadoros

Das könnte jemandem helfen.

Ich entschied mich für die MVC4-App.

Projekt ausführen, gearbeitet

Dann installierte ein paar 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 erwähnt

Lösung:

In web.config

 <dependentAssembly>
      <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.2.3.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.2.3.0" />
 </dependentAssembly>


Problem gelöst


dann wurde jedoch ein Hotfix -Fehler gefunden Um das Problem zu beheben, ___ gehen Sie zum VIEW Ordner Ihres MVC4-Projekts Finden Sie secondweb.config und änderte die Version von 2.0.0.0 in 3.0.0.0, wie unten gezeigt .


<configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="Host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>

2
micronyks
 Installing NuGet package ASP.NET.MVC solved the issue for me. 
 To install package.
 - Right click on project 
 - Select "Manage NuGet Packages"
 - Select Online->Nuget.org from left menu
 - select "Microsoft ASP.NET MVC"
 - Click Install

 If you have already installed package earlier, please update the package by selecting Updates from left menu and then selecting "Microsoft ASP.NET" and click Update.

 enter image description here

 enter image description here

2
Arvind Krmar

In meinem Fall fehlte mir tatsächlich mein web.config, der die entsprechenden Bindungsweiterleitungen hatte. Durch das Wiederherstellen des web.config wurde der Fehler behoben.

2

Ich habe die Lösung gefunden! Löschen Sie den Ordner mit dem Namen "Paket" im Projektverzeichnis und erstellen Sie ihn anschließend neu.

1

Ich habe nicht nichts gemacht, sondern nur den Entwicklungsordner Bin Ordner DLLs in den online bereitgestellten Bin Ordner kopiert und es funktionierte gut für mich.

1
Anjan Kant

Ich könnte ein ähnliches Problem mit System.Net.HTTP lösen, indem Sie in app.config der Hauptanwendung den Assembly-Verweis hinzufügen.

  <runtime>
    <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.1.1" newVersion="4.0.0.0" />
      </dependentAssembly></runtime>
1
Parag Bangad

JA!!!

Install-Package Microsoft.AspNet.WebApi -Version 5.0.0

Es funktioniert gut in meinem Fall .... thnkz

1
X-Coder
<dependentAssembly>
    <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
<dependentAssembly>
    <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
1
ravula sandeep

Bei mir ist dieser Fehler nur in einer Produktionsumgebung abgestürzt, nicht auf einem lokalen Computer. Es wurde gelöst, den Inhalt des Ordners/bin zu löschen und ihn dann erneut zu erstellen.

1
Oana Leva

Wie andere bereits gesagt haben, installieren Sie das MVC-Paket mit nuget erneut in Ihrem Webprojekt. Fügen Sie jedoch das MVC-Paket zu jedem Projekt hinzu, das vom Webprojekt abhängt, z. Wenn Sie jedes eingeschlossene Projekt einzeln erstellen, werden Sie feststellen, dass die Aktualisierung erforderlich ist.

0
DeeArgee

Dieses Problem ist bei der Bereitstellung in Azure mit der Veröffentlichungsfunktion aufgetreten. __ Denken Sie daran, 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/Lösung war alles die gleiche Version, nur nicht an dem Ziel, an dem ich bereitgestellt wurde.

0
Shelby115

Ich hatte das gleiche Problem und die Neuinstallation des Pakets funktioniert nicht.

Meine Anwendung läuft in LocalIIS (nicht IIS EXPRESS). Ich aktiviere Assembly Load Trace und finde heraus, dass es System.Web.Http laden soll, wenn es von unterhalb der temporären Kategorie geladen wird. so alle Fangordner entfernen darin.

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporäre ASP.NET-Dateien [meine Anwendung]

0
Mohammadreza

Ich löste dieses Problem, indem ich die Änderungen, die Nuget an meinem web.config vorgenommen hatte, nach der Ausführung von nuget zurücksetzte. Setzen Sie die Änderungen auf eine frühere Arbeitsversion zurück.

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
  </dependentAssembly>
0
roo2

Wenn Sie mehrere Projekte für eine Lösung verwenden und Methode in einem Projekt für ein anderes Projekt aufrufen, stellen Sie sicher, dass alle Projekte (genannt Projekt und Aufrufer-Projekt) die eindeutige 'System.Net.Http'-Version verwenden.

0
MohammadSoori

Ich hatte dies von einem WCF-Dienst. Für mich (da das Problem in local dev angezeigt wurde) musste ich einfach den Inhalt des bin-Ordners unter der Lösung löschen. Der Wiederaufbau funktioniert wieder einwandfrei.

0
DubMan

Das Problem, das für mich gelöst wurde, bestand darin, die Microsoft ASP.NET Web API 2.2-Hilfeseite und Microsoft ASP.NET Web API 2.2 OWIN - Pakete erneut zu installieren. Ich habe beide gleichzeitig neu installiert, aber ich denke, es war der erste, der 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 eines Projekts verglichen, das funktionierte (aus einem Kurs bei Pluralsight) ) Also habe ich sie auf 5.2.3 aktualisiert und es fing an zu arbeiten.

0
lukegf

Ich hatte das gleiche Problem mit dem Verweis auf System.Web.Http.WebHost, Version = 5.2.6.0, aber das neueste NuGet-Paket war 5.2.7.0. Ich habe die web.config-Dateien bearbeitet, das NuGet-Paket erneut 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 alledem blieb das Problem bestehen.

Dann habe ich im Ordner bin nach dem Projekt gesucht, das die Ausnahme ausgelöst hat. Dort habe ich für eines meiner anderen Projekte eine DLL gefunden, die keine Abhängigkeit darstellt und niemals hätte vorhanden sein dürfen. Ich habe das fehlerhafte DLL (das 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.

0
cghore

Ich hatte ein ähnliches Problem. Alles hat vorher funktioniert. Es wurde ursprünglich mit Web Forms erstellt und für einige Dinge wurde später eine Web-API hinzugefügt.

  • Versucht, das Microsoft.AspNet.WebApi-Paket zu deinstallieren, zu installieren und erneut zu installieren.
  • Es wurde versucht, den Paketordner aus der Lösung zu entfernen und NuGet in VS wiederherstellen zu lassen.
  • Es wurde versucht, einzelne Assembly-Referenzen (unter Referenzen) zu entfernen und Pakete erneut zu installieren.
  • Versuchte das Hinzufügen von Bindungsumleitungen zur Version 5.2.3.0 in der in mehreren Antworten erwähnten web.config. Nichts hat für mich funktioniert.

In Visual Studio wurden die Einstellungen für das Veröffentlichungsprofil von "Release" in "Debug" geändert. Merkwürdig, aber das hat funktioniert. Also hier teilen.

0
joym8

ASP.NET Version: 4.0.30319.18408 gehört zu .Net4.5 und System.Web.Http Version = 4.0.0.0 ist für .NET4.0 kompatibel. 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

0
oscarMg

Ändern Sie das Kennzeichen Spezifische Version für die DLL in der Referenz von "true" in "false"

0
user2992715