wake-up-neo.com

Datei oder Assembly System.Web.Http, Version = 5.2.2.0, konnte nicht geladen werden

Ich habe gerade ein Asp.Net Web Api 2.2-Projekt auf den Produktionsserver hochgeladen, und ich habe den im Titel angegebenen Fehler erhalten.

In meiner Web.config habe ich bereits folgendes:

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

Die Datei ist in der Bin vorhanden. Was würde das bewirken?
Alle meine Asp.Net Web API-Dateien sind auf dem neuesten Stand und zeigen 5.2.2 als Version. Es funktioniert gut auf meiner Entwicklungsmaschine.

16
Mike_G

Setzen Sie Copy Local in den Eigenschaften für die System.Web.Http- und System.Web.Http.WebHost-Assemblys auf true und stellen Sie das Paket erneut bereit.

Wenn das Problem dadurch nicht vollständig gelöst wird, installieren Sie das NuGet-Paket erneut. Dies wird hoffentlich korrigierte kaputte Abhängigkeiten korrigieren. Führen Sie in der Paketverwaltungskonsole den folgenden Befehl aus:

Update-Package Microsoft.AspNet.WebApi -reinstall

Stellen Sie sicher, dass Sie auch System.Web.Http.WebHost installieren.

Für mich habe ich in "Projektmappen-Explorer" die Version von "System.Web.Http" in den Projektverweisen überprüft. Dies war 5.2.3.0. In der web.config habe ich Folgendes geändert: 

<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" /> 

zu 

<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.3.0" />

dann bauen. Es hat für mich funktioniert!

6
Daniel B

Das Hinzufügen von config in web.config hat mein Problem behoben. 

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.5.0" />
  </dependentAssembly>
1
M.Laida

Wenn Sie eine Assembly in GAC mit einer anderen Version haben, wird diese immer geladen, nicht die aus dem Ordner bin.

0
Ricardo Peres

Ich habe das Problem in folgenden Schritten gelöst:

  1. Stoppen der Site auf dem Remote-Webserver
  2. Bereinigen des Site-Ordners
  3. Veröffentlichen Sie es erneut
  4. Starten der Site

Das Veröffentlichen mit einem Klick ersetzte nicht die richtige Version der DLL, oder die Remote-Site behielt die verwendete Datei bei.

0

Ich bin auf genau den gleichen Fehler gestoßen. Ursache war ein Skript, mit dem ich die Anwendung implementierte, die Web.config durch eine vorherige Version ersetzt hat. Die Web.config hat die falsche Version von System.Web.Http angegeben. Durch das Entfernen dieses Schritts wurde das Problem behoben.

0
Matt Weeks