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

183

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

Michal Asaf Carmeli
quelle
Haben Sie versucht, den Verweis auf 'System.Web.Http'
Izikon
4
Bitte markieren Sie die Antwort als akzeptiert.
Aliostad

Antworten:

288

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:

Update-Package Microsoft.AspNet.WebApi -reinstall
Pathoschild
quelle
1
Das lokale Ausführen der Webanwendung war für mich in Ordnung (F5), aber bei der Bereitstellung auf einem Remoteserver (mit WebDeploy) wurden die Assemblys nicht auf den Server kopiert. Ich war mir nicht sicher, ob die Baugruppen kopiert werden sollten oder nicht. Wie auch immer, nachdem dieser Befehl ausgeführt wurde, wurden alle erforderlichen Assemblys mit copy-local = true markiert und nach der Bereitstellung funktionierte die App ordnungsgemäß
Guillermo Ruffino
3
Nur um ein ausgewogeneres Bild hinzuzufügen - das hat das Problem für mich nicht gelöst.
Lewray
2
Stellen
Ich habe dies getan und es wurden zu viele Änderungen vorgenommen, aber ich habe festgestellt, dass die Bindungsumleitungen in der web.config angepasst wurden. Ich habe alle anderen vorgenommenen Änderungen verworfen und dies hat bei mir funktioniert.
Myster
Jetzt erhalte ich einen neuen Fehler: Die neue Version ist Version = 5.2.3.0 und erwartet Version = 4.0.0.0
Yar
84

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)

Geben Sie hier die Bildbeschreibung ein

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!

Catto
quelle
Danke Catto, es hat mich sehr geheilt.
Saurabh Soni
61

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>

Höchstwahrscheinlich müssen Sie dies für ein paar weitere Assemblys wie Webhosting usw. tun.

Aliostad
quelle
Ich habe die Antwort bearbeitet. Aus irgendeinem Grund wurde der DLL-Name in Castle Windsor geändert System.Web.Http.
Aliostad
7
Sie sollten niemals binäre Weiterleitungen hinzufügen, ohne sicherzustellen, dass die neue Assembly mit der vorherigen binär kompatibel ist.
GETah
18

Sie können dies auch über die NuGet Package Manager-Konsole tun

 Install-Package Microsoft.AspNet.WebApi -Version 5.0.0

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

Sameer Alibhai
quelle
Arbeit für mich, installieren Sie einfach das Installationspaket Microsoft.AspNet.WebApi
Djama
17

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.

  <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>
jhilden
quelle
1
Gleiches gilt für ein Projekt, das von Anfang an Web Api 2.2 war, als es in Azure veröffentlicht wurde. Das Projekt hat lokal gut funktioniert, aber unter Azure habe ich den Fehler vom OP erhalten. Durch Hinzufügen dieser Zeilen zu web.config und erneutes Veröffentlichen in Azure wurde das Problem behoben.
AronVanAmmers
4

Ich habe einfach Copy Local = truedie 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:

Geben Sie hier die Bildbeschreibung ein

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.

t_plusplus
quelle
1
Hat perfekt funktioniert. Ich musste nur "Copy Local = true" auf System.Web.Http und System.Net.Http.Formatting
Sandip Subedi
4

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)

  1. Entfernen Sie alle Bindungsumleitungen aus web.config

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

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

  2. Im Ordner bin sollte sich eine (WebAppName).dll.configDatei befinden.

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

  4. Entfernen Sie den oben genannten Ausschnitt erneut aus der csproj-Datei

  5. Es sollte funktionieren

Detailed Blog

Sajeetharan
quelle
Es werden nicht alle Bindungen erstellt
Batmaci
3

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.

Oana
quelle
Dies sollten die Leute überprüfen. Ich hatte das gleiche Problem. Es stellte sich heraus, dass es im Frontend meiner App eine unnötige DLL für Microsoft.AspNet.Cors gab. Ich hatte den Bin-Ordner auf den Prod-Systemen gelöscht, die Site erneut veröffentlicht und Magic.
Ron
2

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

Jim Taliadoros
quelle
2
 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.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Arvind Krmar
quelle
2

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

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


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

Mikronyken
quelle
2

In meinem Fall fehlte mir tatsächlich meine web.configgesamte, die die entsprechenden verbindlichen Weiterleitungen hatte. Durch das Wiederherstellen des wurde web.configder Fehler behoben.

Brandon Hawbaker
quelle
2

Ich könnte ein ähnliches Problem mit System.Net.HTTP lösen, indem ich in app.config der Hauptanwendung eine Assemblyreferenz 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>
Parag Bangad
quelle
1

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.

Ashitosh Birajdar
quelle
1
<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>
Ravula Sandeep
quelle
1

JA!!!

Install-Package Microsoft.AspNet.WebApi -Version 5.0.0

In meinem Fall funktioniert es gut .... thnkz

X-Coder
quelle
2
Dies ist nur ein Duplikat einer vorhandenen Antwort . Da Sie anscheinend nichts mehr hinzuzufügen haben, sollten Sie dieses entfernen.
zzzzBov
1

Ich habe nichts getan, nur Entwicklungs- Bin- Ordner- DLLs in den online bereitgestellten Bin- Ordner kopiert und es hat gut für mich funktioniert.

Anjan Kant
quelle
0

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.

DeeArgee
quelle
0

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]

Mohammadreza
quelle
0

Ich habe dieses Problem gelöst, indem ich die Änderungen, die Nuget web.confignach dem Ausführen an mir vorgenommen hatte, zurückgesetzt habe nuget. 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>
roo2
quelle
0

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.

lukegf
quelle
0

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.

DubMan
quelle
0

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

oscarMg
quelle
0

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.

  • Versucht, das Microsoft.AspNet.WebApi-Paket zu deinstallieren, zu installieren und neu zu installieren.
  • Es wurde versucht, den Paketordner aus der Lösung zu entfernen und NuGet in VS wiederherstellen zu lassen.
  • Es wurde versucht, einzelne Assemblyreferenzen (unter Referenzen) zu entfernen und Pakete neu zu installieren.
  • Es wurde versucht, verbindliche Weiterleitungen zur Version 5.2.3.0 in web.config hinzuzufügen, die in mehreren Antworten erwähnt wurden. Bei mir hat nichts funktioniert.

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.

joym8
quelle
0

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.

Shelby115
quelle
0

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 .

MohammadSoori
quelle
0

Ändern Sie das Specfic-Versionsflag für die DLL in der Referenz von true in false

user2992715
quelle
0

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.

cghore
quelle