Impossible de charger le fichier ou l’assembly ‘System.Web.Http 4.0.0 après la mise à jour de 2012 à 2013

J’ai fait la mise à niveau selon. 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

Je reçois l’erreur. Est-ce que quelqu’un d’autre a cette erreur?

Erreur serveur dans l’application ‘/’

Impossible de charger le fichier ou l’assembly ‘System.Web.Http, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35’ ou l’une de ses dépendances. La définition de manifeste de l’assembly situé ne correspond pas à la référence de l’assembly. (Exception de HRESULT: 0x80131040)
Description: une exception non gérée s’est produite lors de l’exécution de la demande Web en cours. Consultez la trace de la stack pour plus d’informations sur l’erreur et son origine dans le code.

Détails de l’exception: System.IO.FileLoadException: Impossible de charger le fichier ou l’assembly ‘System.Web.Http, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35’ ou l’une de ses dépendances. La définition de manifeste de l’assembly situé ne correspond pas à la référence de l’assembly. (Exception de HRESULT: 0x80131040)

Erreur source:

Ligne 48: Ligne 49: Ligne 50:} Ligne 51: Ligne 52: Protégé annule Application_BeginRequest (expéditeur d’object, EventArgs e)

Fichier source: d: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ Global.asax.cs Ligne: 50

Trace de chargement de l’assembly: Les informations suivantes peuvent être utiles pour déterminer pourquoi l’assembly ‘System.Web.Http, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35’ n’a pas pu être chargé.

=== Informations sur l’état de pré-liaison === LOG: DisplayName = System.Web.Http, Version = 4.0.0.0, Culture = neutre, PublicKeyToken = 31bf3856ad364e35 (Entièrement spécifié) LOG: Appbase = fichier: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/ LOG: InitialPath initial = D: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ bin Ensemble appelant: ThirdPartyWebAPI, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null. === LOG: cette liaison démarre dans le contexte de chargement par défaut. LOG: Utilisation du fichier de configuration de l’application: D: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ web.config LOG: Utilisation du fichier de configuration de l’hôte: C: \ Users \ michalc \ Documents \ IISExpress \ config \ aspnet.config LOG: Utilisation de la configuration de l’ordinateur fichier de C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config. LOG: Référence post-politique: System.Web.Http, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 LOG: Tentative de téléchargement du nouveau fichier URL: /// C: /Windows/Microsoft.NET/Framework/v4 .0.30319 / Fichiers ASP.NET temporaires / root / 9184b2ea / c6d4b139 / System.Web.Http.DLL. LOG: Tentative de téléchargement du nouveau fichier URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/ Fichiers ASP.NET temporaires / root / 9184b2ea / c6d4b139 / System.Web.Http / System.Web.Http .DLL. LOG: Tentative de téléchargement du nouveau fichier URL: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL. WRN: la comparaison du nom de l’assembly a entraîné une incohérence: Version majeure ERR: impossible de terminer la configuration de l’assembly (hr = 0x80131040). Sondage terminé.

Trace de la stack:

[FileLoadException: Impossible de charger le fichier ou l’assembly ‘System.Web.Http, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35’ ou l’une de ses dépendances. La définition de manifeste de l’assembly situé ne correspond pas à la référence de l’assembly. (Exception de HRESULT: 0x80131040)] ThirdPartyWebAPI.WebApiApplication.Application_Start () dans d: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ Global.asax.cs: 50

[HttpException (0x80004005): Impossible de charger le fichier ou l’assembly ‘System.Web.Http, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35’ ou l’une de ses dépendances. La définition de manifeste de l’assembly situé ne correspond pas à la référence de l’assembly. (Exception de HRESULT: 0x80131040)]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode (contexte HttpContext, application HttpApplication) +9935033
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS (gestionnaires IntPtr appContext, HttpContext context, MethodInfo []) +118
System.Web.HttpApplication.InitSpecial (état HttpApplicationState, gestionnaires MethodInfo [], IntPtr appContext, contexte HttpContext) +172
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance (contexte IntPtr appContext, HttpContext) +336
System.Web.Hosting.PipelineRuntime.InitializeApplication (IntPtr appContext) +296

[HttpException (0x80004005): Impossible de charger le fichier ou l’assembly ‘System.Web.Http, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35’ ou l’une de ses dépendances. La définition de manifeste de l’assembly situé ne correspond pas à la référence de l’assembly. (Exception de HRESULT: 0x80131040)]
System.Web.HttpRuntime.FirstRequestInit (contexte HttpContext) +9913572 System.Web.HttpRuntime.EnsureFirstRequestInit (contexte HttpContext) +101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate (IIS7WorkerRequest wr, contexte HttpContext) +254


Informations de version: Microsoft .NET Framework Version: 4.0.30319; Version ASP.NET: 4.0.30319.18408

J’ai résolu ce problème en réinstallant le package NuGet , qui corrige les dépendances brisées. Depuis le gestionnaire de paquets, exécutez:

Update-Package Microsoft.AspNet.WebApi -reinstall 

Pour résoudre le fichier Impossible de charger le fichier ou l’assembly ‘System.Web.Http’, utilisez NuGet pour installer Web API 2.1 WebHost.

Dans l’explorateur de solutions dans les références, cliquez avec le bouton droit de la souris et sélectionnez Gérer les packages nuget. (sinon, installez nuget)

entrer la description de l'image ici

Dans la fenêtre de gestion des packages NuGet à gauche, cliquez sur en ligne, puis en haut à droite, recherchez Web Host et installez l’hôte Web Microsoft ASP.NET Web API 2.1. (Une fois installé, le bouton d’installation se transforme en une coche verte)

Après cela, le projet se rechargera et quand il sera reconstruit, l’erreur sera résolue et le projet sera débogué et exécuté. L’erreur aura disparu et vous pourriez être «La ressource ne peut pas être trouvée. Il suffit d’append l’url (depuis localhost: 52088 / vers localhost: 52088api / products)

Votre question était bonne et m’a aidé.

J’espère que cette réponse aide!

Vous devez append des redirections d’assemblage:

  ....         ...  

Il est fort probable que vous deviez le faire pour quelques assemblées supplémentaires, comme l’hébergement Web, etc.

Ou vous pouvez le faire à partir de la console NuGet Package Manager

  Install-Package Microsoft.AspNet.WebApi -Version 5.0.0 

Et puis vous pourrez append la référence à System.Web.Http.WebHost 5.0

Lorsque j’ai installé Web Api 2.2, cette erreur a commencé. J’ai ajouté ceci au web.config et cela a résolu mon problème.

      

J’ai simplement défini Copy Local = true sur l’assembly manquant et cela a fonctionné. Cela se produit bien sûr en cliquant avec le bouton droit sur la référence manquante (qui est indiquée dans le message d’erreur) et en sélectionnant les propriétés; comme ci-dessous:

entrer la description de l'image ici

Cela devrait alors résoudre un problème car il pourrait y avoir plusieurs assemblages à l’origine du problème – ce que j’ai fait, c’est que j’ai sélectionné tous les assemblages et fait un clic droit dessus; propriétés sélectionnées; et les définir tous pour copier local = true; puis republiez.

Juste une astuce utile mais évidente… n’oubliez pas de vérifier que la nouvelle version que vous spécifiez dans votre liaison d’assembly webconfig est la même que celle que vous référencez dans vos références de projet. (c’est-à-dire que lorsque j’écris ceci, ce serait 5.1.0.0 si vous avez récemment effectué un NUGet sur System.Web.Http

  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. 

entrer la description de l'image ici

entrer la description de l'image ici

OUI!!!

 Install-Package Microsoft.AspNet.WebApi -Version 5.0.0 

Ca marche bien dans mon cas ….

Cela pourrait aider quelqu’un.

J’ai décidé d’utiliser l’application MVC4.

exécuter le projet, travaillé

Ensuite, installé quelques paquets comme,
Microsoft ASP.NET WEB API 2.2 (4 packages)
Page d’aide de Microsoft ASP.NET WEB API 2.2
Microsoft ASP.NET WEB API 2.2 OWIN

exécuter le projet, même erreur que celle mentionnée en question

Solution:

Dans web.config

          

Problème résolu


mais ensuite, une erreur de correctif a été trouvée. Pour le résoudre, accédez au dossier VIEW de votre projet MVC4, recherchez le second fichier web.config et modifiez la version 2.0.0.0 à 3.0.0.0, comme indiqué ci-dessous.


   

J’ai trouvé la solution! Supprimez le dossier nommé package dans le répertoire du projet, puis recréez-le pour l’exécuter.

En ce qui me web.config , mon web.config me manquait complètement, avec les redirections de liaison appropriées. La restauration de web.config résolu l’erreur.

Moi, je n’ai rien fait, j’ai juste copié les DLL du dossier Bin de développement vers le dossier Bin déployé en ligne et cela a bien fonctionné pour moi.

La solution appropriée pour résoudre ce problème consiste à suivre les étapes

. Mettre à jour Visual Studio si vous avez une version antérieure à 15.5.4 (facultatif)

  1. Supprimer toutes les redirections de liaison de web.config

  2. Ajoutez ceci au fichier csproj:

   true true  
  1. Construire.

  2. Dans le dossier bin, il doit y avoir un (WebAppName).dll.config .

  3. Il devrait y avoir des redirections. Copiez-les dans le fichier web.config

  4. Supprimer à nouveau le fichier découpé ci-dessus du fichier csproj

  5. Ça devrait marcher

Detailed Blog

Pour moi, il ne faisait que planter cette erreur sur un environnement de production, pas sur une machine locale; ce qui a résolu c’est de supprimer le contenu du dossier / bin et de le régénérer à nouveau.

Comme d’autres l’ont déjà dit, réinstallez simplement le package MVC sur votre projet Web à l’aide de nuget, mais veillez à append le package MVC à tous les projets en fonction du projet Web, tels que les tests unitaires. Si vous construisez chaque projet inclus individuellement, vous verrez que ceux qui nécessitent la mise à jour.

J’ai eu le même problème et la réinstallation du paquet ne fonctionne pas.

Mon application s’exécute dans LocalIIS (pas IIS EXPRESS). J’active le paramètre Load Load Trace et je découvre qu’il faut charger le chargement System.Web.Http depuis le sous-sol. Alors, supprimez tous les dossiers de capture .

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Fichiers ASP.NET temporaires [mon application]

J’ai résolu ce problème en rétablissant les modifications apscopes par nuget à mon web.config après avoir exécuté nuget . Revenir aux modifications d’une version de travail précédente.

      
         

Ce qui a résolu le problème pour moi était la réinstallation de la page d’aide de Microsoft ASP.NET Web API 2.2 et des packages Microsoft ASP.NET Web API 2.2 OWIN . J’ai réinstallé les deux en même temps, mais je pense que c’est le premier qui a résolu le problème.

J’ai essayé les premières solutions proposées mais cela n’a pas aidé, puis j’ai comparé mes dépendances avec celles d’un projet qui fonctionnait (à partir d’un cours sur Pluralsight) et les deux dépendances ci-dessus étaient une version inférieure (5.0.0 ) alors je les ai mis à jour en 5.2.3 et cela a commencé à fonctionner.

Je l’ai eu d’un service WCF. Pour moi (comme le problème était affiché en dev local), je devais simplement supprimer le contenu du dossier bin sous la solution. La reconstruction fonctionne bien encore une fois.

La version ASP.NET: 4.0.30319.18408 appartient à .Net4.5 et System.Web.Http Version = 4.0.0.0 est compatible avec .NET4.0. Donc, les versions que vous avez ne sont pas compatibles. Vous devriez mettre à jour votre System.Web.Http à la version 5.0.0.0, qui est compatible avec .Net4.5

Je pourrais résoudre un problème similaire avec System.Net.HTTP en ajoutant une référence d’assembly dans app.config de l’application principale.

        

J’ai eu un problème similaire. Tout fonctionnait avant. Il a été créé à l’origine à l’aide de Web Forms et, plus tard, de l’API Web ajoutée pour certaines choses.

  • Essayé de désinstaller, d’installer et de réinstaller le package Microsoft.AspNet.WebApi.
  • Essayé de supprimer le dossier packages de la solution et de laisser NuGet restaurer dans VS.
  • Essayé de supprimer des références d’assemblage individuelles (sous Références) et de réinstaller des packages.
  • Essayé d’append des redirections de liaison à la version 5.2.3.0 dans web.config mentionné dans plusieurs réponses. Rien n’a fonctionné pour moi.

Ce qui a fonctionné était, dans Visual Studio, de modifier les parameters de profil de publication de Release à Debug. Étrange, mais c’est ce qui a fonctionné. Alors partage ici.

J’ai rencontré ce problème lors du déploiement sur Azure à l’aide de la fonctionnalité Publier. N’oubliez pas d’effacer les fichiers à destination.

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

Cela a résolu mon problème, au cas où les gens devaient chasser pour cela comme moi. Tout était la même version dans mon projet / solution, mais pas à la destination dans laquelle je me déplaçais.

Si vous utilisez plusieurs projets sur une solution et appelez une méthode dans un projet dans un autre projet, assurez-vous que tous les projets (appelés projet et appelant projet) utilisent la version unique 'System.Net.Http' .