c# - framework - odata web api



Die Datei System.Web.Http 4.0.0 konnte nach dem Update von 2012 auf 2013 nicht geladen werden (17)

Ich habe das Upgrade nach. 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 jemand sonst diesen Fehler?

Serverfehler in '/' Anwendung.

Die 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 lokalisierten Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040)
Beschreibung: Bei der Ausführung der aktuellen Webanforderung ist eine nicht behandelte Ausnahme aufgetreten. Bitte überprüfen Sie die Stack-Trace für weitere Informationen über den Fehler und wo es aus dem Code stammt.

Ausnahmedetails: System.IO.FileLoadException: Die 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 lokalisierten 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 (Objekt Absender, 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.

=== Pre-bind Statusinformationen === LOG: DisplayName = System.Web.Http, Version = 4.0.0.0, Kultur = 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 Aufrufende Assembly: ThirdPartyWebAPI, Version = 1.0.0.0, Culture = Neutral, PublicKeyToken = null. === LOG: Diese Bindung beginnt im Standard-Ladekontext. LOG: Verwenden der Anwendungskonfigurationsdatei: D: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ web.config LOG: Verwenden der Hostkonfigurationsdatei: C: \ Benutzer \ michalc \ Documents \ IISExpress \ config \ aspnet.config LOG: Verwenden der Maschinenkonfiguration Datei von C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config. LOG: Post-Richtlinienverweis: System.Web.Http, Version = 4.0.0.0, Culture = Neutral, PublicKeyToken = 31bf3856ad364e35 PROTOKOLL: Versuch des Downloads der neuen URL-Datei: /// C: /Windows/Microsoft.NET/Framework/v4 .0.30319 / Temporäre 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 Files / root / 9184b2ea / c6d4b139 / System.Web.Http / System.Web.Http .DLL. LOG: Es wurde versucht, eine neue URL-Datei herunterzuladen: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL. WRN: Das Vergleichen des Assemblynamens führte zu der Nichtübereinstimmung: Major Version ERR: konnte Setup der Assembly nicht abschließen (hr = 0x80131040). Sondierung beendet.

Stack Trace:

[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 lokalisierten 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): Die 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 lokalisierten Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040)]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode (HttpContext-Kontext, HttpApplication-App) +9935033
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS (IntPtr-appContext, HttpContext-Kontext, 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
System.Web.Hosting.PipelineRuntime.InitializeApplication (IntPtr-appContext) +296

[HttpException (0x80004005): Die 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 lokalisierten 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.HttpRuntime.ProcessRequestNotificationPrivate (IIS7WorkerRequest wr, HttpContext-Kontext) +254

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

https://src-bin.com


Answer #1

ASP.NET Version: 4.0.30319.18408 gehört zu .Net4.5 und System.Web.Http Version = 4.0.0.0 ist kompatibel zu .NET4.0. Die Versionen, die Sie haben, sind nicht kompatibel. Sie sollten System.Web.Http auf Version 5.0.0.0 aktualisieren, die mit .Net4.5 kompatibel ist


Answer #2

Als ich Web Api 2.2 help installiert habe, ist dieser Fehler aufgetreten. Ich habe das zur web.config hinzugefügt und es hat 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>

Answer #3

Dies könnte jemandem helfen.

Ich entschied mich für die MVC4-App.

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 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

Aber dann, einige Hotfix- Fehler gefunden, Um es zu lösen, gehen Sie in den Ordner VIEW Ihres MVC4-Projekts, finden Sie die second Datei web.config und änderte die Version von 2.0.0.0 auf 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>

Answer #4

Für mich stürzte es nur mit diesem Fehler in einer Produktionsumgebung, nicht auf der lokalen Maschine; was es gelöst hat, war den Inhalt des Ordners / bin zu löschen und ihn dann erneut zu generieren.


Answer #5

Ich habe dies behoben, indem ich das NuGet-Paket neu installiert habe , das fehlerhafte Abhängigkeiten korrigiert. Führen Sie im Paket-Manager Folgendes aus:

Update-Package Microsoft.AspNet.WebApi -reinstall

Answer #6

Ich habe dieses Problem bei der Bereitstellung mit der Veröffentlichungsfunktion in Azure erhalten. Denken Sie daran, Dateien am Zielort zu löschen.

Publish Settings -> File Publish Options drop down -> Check Remove additional files at destination

Das hat mein Problem gelöst, falls die Leute danach jagen müssen wie ich. In meinem Projekt / meiner Lösung war alles dieselbe Version, nur nicht an dem Zielort, an dem ich die Bereitstellung vorgenommen hatte.


Answer #7

Ich habe nichts gemacht, habe einfach die Development Bin Ordner DLLs in den online Deployed Bin Ordner kopiert und es hat gut für mich funktioniert.


Answer #8

Ich hatte das gleiche Problem und Neuinstallationspaket funktioniert nicht.

Meine Anwendung läuft in LocalIIS (nicht IIS EXPRESS). Ich aktiviere Assembly Load Trace und finde heraus, dass System.Web.Http von unterhalb des Temp-Catches geladen werden soll. Entferne alle Fangordner darin.

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


Answer #9

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

  • Versucht, das Microsoft.AspNet.WebApi-Paket zu deinstallieren, zu installieren und neu zu installieren.
  • Versucht, den Paketordner aus der Lösung zu entfernen und NuGet in VS wiederherzustellen.
  • Versucht, einzelne Assembly-Referenzen (unter Referenzen) zu entfernen und Pakete neu zu installieren.
  • Es wurde versucht, bindende Weiterleitungen zur Version 5.2.3.0 in web.config hinzuzufügen, die in mehreren Antworten erwähnt wurde. Nichts hat für mich funktioniert.

Was funktionierte, war, in Visual Studio die Einstellungen des Veröffentlichungsprofils von "Release to Debug" zu ändern. Seltsam, aber das hat funktioniert. Also hier teilen.


Answer #10

Ich könnte ein ähnliches Problem mit System.Net.HTTP lösen, indem ich eine Assembly-Referenz in app.config der Hauptanwendung hinzufüge.

  <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>

Answer #11

In meinem Fall habe ich eigentlich meine web.config komplett vermisst, die die entsprechenden verbindlichen Umleitungen hatte. Durch das Wiederherstellen von web.config der Fehler behoben.


Answer #12

JA!!!

Install-Package Microsoft.AspNet.WebApi -Version 5.0.0

Es funktioniert gut in meinem Fall .... tnkz


Answer #13

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

 Install-Package Microsoft.AspNet.WebApi -Version 5.0.0

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


Answer #14

Sie müssen Assembly-Redirects 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 Assemblys wie Webhosting usw. tun.


Answer #15

Wie andere bereits gesagt haben, installieren Sie einfach das MVC-Paket mit nuget in Ihrem Webprojekt neu, aber stellen Sie sicher, dass Sie das MVC-Paket abhängig vom Webprojekt, z. B. Komponententests, zu beliebigen Projekten hinzufügen. Wenn Sie jedes enthaltene Projekt einzeln erstellen, sehen Sie, welche das Update benötigen.


Answer #16

Um den Fehler 'System.Web.Http' Datei oder Assembly nicht zu laden, verwenden Sie NuGet, um den Web API 2.1 WebHost zu installieren.

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

Klicken Sie im Fenster "NuGet-Pakete verwalten" auf der linken Seite auf Online und dann in der oberen rechten Ecke auf Web-Host, und installieren Sie den Web-Host für Microsoft ASP.NET Web API 2.1. (Nach der Installation wechselt der Installations-Button zu einem grünen Check)

Danach wird das Projekt neu geladen und wenn es erneut erstellt wird, wird der Fehler behoben und das Projekt wird debuggen und ausgeführt. Der Fehler ist weg und Sie können sein: "Die Ressource kann nicht gefunden werden. Einfach die URL anhängen (zB von localhost: 52088 / zu localhost: 52088api / products)

Deine Frage war gut und hat mir geholfen.

Hoffe, diese Antwort hilft!


Answer #17
<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>




visual-studio-2013