web-dev-qa-db-fra.com

Impossible de charger le fichier ou l'assembly System.Web.Http, Version = 5.2.2.0

Je viens de télécharger un projet Asp.Net Web Api 2.2 sur un serveur de production et le message d'erreur indiqué dans le titre.

Dans mon Web.config, j'ai déjà ceci:

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

Le fichier existe dans le bac. Qu'est-ce qui causerait ça?
Tous mes fichiers API Web Asp.Net sont à jour et indiquent la version 5.2.2. Cela fonctionne bien sur ma machine de développement.

16
Mike_G

Définissez Copy Local sur true dans les propriétés des assemblys System.Web.Http et System.Web.Http.WebHost et redéployez le package.

Si cela ne résout pas complètement votre problème, essayez de réinstaller le paquet NuGet. Espérons que cela corrigera les dépendances brisées. Depuis la console de gestion de paquets, exécutez cette commande:

Update-Package Microsoft.AspNet.WebApi -reinstall

Assurez-vous d’installer également System.Web.Http.WebHost.

26

Pour moi, dans "Solution Explorer", j'ai vérifié le ver de "System.Web.Http" dans les références du projet, qui était 5.2.3.0, donc, dans le fichier web.config, j'ai changé 

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

à 

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

puis construire. Cela a fonctionné pour moi!

6
Daniel B

Ajouter ci-dessous la configuration dans web.config a résolu mon problème. 

  <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

Si vous avez un assemblage dans GAC avec une version différente, il sera toujours chargé, pas celui du dossier bin.

0
Ricardo Peres

J'ai rencontré la même erreur exacte. Cela était dû à un script que j'utilisais pour déployer l'application qui remplaçait Web.config par une version précédente. Le fichier Web.config spécifiait la version incorrecte de System.Web.Http. Supprimer cette étape a résolu le problème.

0
Matt Weeks