Ne pouvait pas charger le système de fichier ou d'assemblage.Web.Http 4.0.0 après mise à jour de 2012 à 2013

j'ai fait la mise à jour 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 comprends l'erreur. Quelqu'un d'autre a cette erreur?

erreur de serveur dans ' / ' Application.

ne pouvait pas charger le système de fichiers ou d'assemblage.Web.Http, Version=4.0.0.0, Culture=neutre, Publiceytoken=31bf3856ad364e35" ou l'un de ses dépendance. La définition du Manifeste de l'ensemble localisé ne match de l'assemblée de référence. (Exception de HRESULT: 0x80131040)

Description: Une exception sans entrave s'est produite lors de l'exécution de la demande web actuelle. S'il Vous Plaît, passez en revue la trace de la pile pour plus information sur l'erreur et son origine dans le code.

Détails De L'Exception: Système.IO.FileLoadException: impossible de charger le fichier ou de l'assemblée 'Système.Web.Http, Version=4.0.0.0, Culture = neutre, PublicKeyToken=31bf3856ad364e35' ou l'une de ses dépendances. Le situé à l'assemblée manifeste définition ne correspond pas à l'assemblée référence. (Exception de HRESULT: 0x80131040)

Source D'Erreur:

Ligne 48: Ligne 49: Ligne 50:} Ligne 51: ligne 52: demande d'annulation protégée (objet sender, EventArgs e)

Fichier Source: d:SM7.4TestWebAPIServerV2ThirdPartyWebAPIGlobal.asax.ligne cs: 50

trace de la charge D'assemblage: les informations suivantes peuvent être utiles pour déterminer pourquoi le système d'assemblage.Web.Http, Version=4.0.0.0, Culture=neutre, PublicKeyToken = 31bf3856ad364e35 " Impossible à charger.

= = = pré-bind = = = LOG: DisplayName = System.Web.Http, Version=4.0.0.0, Culture = neutre, PublicKeyToken=31bf3856ad364e35 (Entièrement spécifié) LOG: Appbase = fichier: / / / D: / SM/7.4 Test/WebAPIServerV2/ThirdPartyWebAPI / LOG: Initial PrivatePath = D:SM7.4TestWebAPIServerV2ThirdPartyWebAPIbin Appel à l'assemblage: ThirdPartyWebAPI, Version = 1.0.0.0, Culture = neutre, Publiceytoken = null. = = = LOG: cette liaison commence dans le contexte de chargement par défaut. LOG: Utilisation du fichier de configuration de l'application: D:SM7.4TestWebAPIServerV2ThirdPartyWebAPIweb.journal de configuration: utiliser fichier de configuration d'hôte: C:UsersmichalcDocumentsIISExpressconfigaspnet.journal de configuration: utiliser fichier de configuration de machine de C:WindowsMicrosoft.NETFrameworkv4.0.30319configmachine.config. JOURNAL: Post-politique de référence: Système.Web.Http, Version=4.0.0.0, Culture=neutre, PublicKeyToken=31bf3856ad364e35 LOG: Attempting téléchargement D'une nouvelle URL fichier:// / C: / Windows / Microsoft.NET/Framework / v4.0.30319 / temporaire ASP.NET fichiers/root/9184b2ea/C6d4b139 / System.Web.Http.DLL. JOURNAL: Tentative de téléchargement d'une nouvelle URL fichier:// / C: / Windows / Microsoft.NET/Framework / v4.0.30319 / temporaire ASP.NET Les fichiers de/root/9184b2ea/c6d4b139/Système.Web.Http / System.Web.Http.DLL. JOURNAL: Tentative de téléchargement d'une nouvelle URL fichier:///D:/SM/7.4 Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL. WRN: la comparaison du nom de l'assemblage a donné lieu à l'inadéquation: Major Version ERR: échec de la configuration complète de l'assemblage (hr = 0x80131040). Sondage terminé.

Trace De La Pile:

[FileLoadException: impossible de charger un système de fichiers ou d'assemblage.Web.Http, Version=4.0.0.0, Culture= neutre, PublicKeyToken= 31bf3856ad364e35 " or l'une de ses dépendances. L'assemblée manifeste définition ne correspond pas à la référence d'assemblage. (Exception de HRESULT: 0x80131040)] ThirdPartyWebAPI.WebApiApplication.Application_Start() en d:SM7.4TestWebAPIServerV2ThirdPartyWebAPIGlobal.asax.cs: 50

[HttpException (0x80004005): impossible de charger le fichier ou l'assembly 'Système.Web.Http, Version=4.0.0.0, Culture = neutre, PublicKeyToken=31bf3856ad364e35' ou l'une de ses dépendances. Le situé à l'assemblée manifeste définition ne correspond pas à l'assemblée référence. (Exception de HRESULT: 0x80131040)]

Système.Web.HttpApplicationFactory.Ensureappeldefondspourmodeintégré(HttpContext) context, HttpApplication app) + 9935033

Système.Web.HttpApplication.RegisterEventSubscriptionsWithIIs(IntPtr appContext, Httpcontexte context, MethodInfo [] handlers) +118

Système.Web.HttpApplication.InitSpecial (Httpapplicationetat, MethodInfo[] les gestionnaires, IntPtr appContext, HttpContext contexte) +172

Système.Web.HttpApplicationFactory.GetSpecialApplicationInstance (IntPtr appContext, HttpContext context) +336

Système.Web.Accueillir.PipelineRuntime.InitializeApplication(IntPtr appContext) +296

[HttpException (0x80004005): impossible de charger le fichier ou l'assemblage 'Système.Web.Http, Version=4.0.0.0, Culture = neutre, PublicKeyToken=31bf3856ad364e35' ou l'une de ses dépendances. Le situé à l'assemblée manifeste définition ne correspond pas à l'assemblée référence. (Exception de HRESULT: 0x80131040)]

Système.Web.HttpRuntime.Premier Questinit (HttpContext contexte) + 9913572 Système.Web.HttpRuntime.EnsureFirstRequestInit (HttpContext context)) +101 système.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext contexte) +254


Information de Version: Microsoft. NET Framework Version:4.0.30319; ASP.NET Version: 4.0.30319.18408

161
demandé sur Soner Gönül 2013-10-21 14:20:32

27 réponses

j'ai corrigé cela par réinstallant le paquet NuGet , qui corrige les dépendances cassées. Du gestionnaire de paquets, Lancez:

Update-Package Microsoft.AspNet.WebApi -reinstall
259
répondu Pathoschild 2017-08-29 17:38:11

pour résoudre le fichier ne pouvait pas charger ou le système d'assemblage.Web.L'erreur Http ' utilise NuGet pour installer L'API web 2.1 WebHost.

dans l'Explorateur de solutions dans les références clic droit et sélectionnez Gérer les paquets nuget. (si ce n'est pas là installer nuget)

enter image description here

dans la fenêtre Gérer les paquets NuGet sur le côté gauche, cliquez en ligne, puis en haut à droite, recherchez L'hôte Web et installez Microsoft ASP.NET Web API 2.1 Web Host. (Une fois installé, le bouton install passera à une vérification verte)

après cela le projet va se recharger et quand il sera construit de nouveau l'erreur sera résolue et le projet va déboguer et fonctionner. L'erreur aura disparu et vous avez peut-être 'La ressource ne peut pas être trouvé. Ajoutez simplement l'url ( ex à partir de localhost:52088/ localhost:52088api/produits )

votre question était bonne et m'a aidé.

Espérons que cette réponse vous sera utile!

82
répondu Catto 2014-10-09 11:33:14

vous devez ajouter redirections d'assemblage:

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

il est fort probable que vous ayez à le faire pour quelques autres montages comme l'hébergement web, etc.

57
répondu Aliostad 2013-10-26 15:09:41

ou vous pouvez le faire depuis la Console NuGet Package Manager

 Install-Package Microsoft.AspNet.WebApi -Version 5.0.0

et ensuite vous pourrez ajouter la référence au système.Web.Http.WebHost 5.0

15
répondu Sameer 2013-12-17 19:49:29

lorsque j'ai installé Web Api 2.2 aide cette erreur a commencé. J'ai ajouté ceci pour le web.config et ça a résolu mon problème.

  <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>
15
répondu jhilden 2014-09-16 22:59:00

j'ai simplement mis Copy Local = true sur l'ensemble manquant et qui a fonctionné. Cela se produit bien sûr en cliquant droit sur la référence manquante (qui est indiquée dans le message d'erreur) et en sélectionnant Propriétés; comme ci-dessous:

enter image description here

cela devrait alors résoudre un problème car il pourrait y avoir plus d'une assemblée causant le problème - ce que j'ai fait est que j'ai sélectionné toutes les assemblées et clic droit sur eux; les propriétés sélectionnées; et les définir tous pour copier Local = true; et puis republier.

4
répondu Tarek Freijah 2016-07-04 16:12:35

juste un indice évident mais utile possible....n'oubliez pas de vérifier que la nouvelle version que vous spécifiez dans votre reliure d'assemblage webconfig est la même version que celle à laquelle vous faites référence dans vos références de projet. (c'est à dire que j'écris ceci...ce serait 5.1.0.0 si vous avez récemment fait un NUGet sur le Système.Web.Http

2
répondu Jim Taliadoros 2014-02-17 15:31:28
 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.

enter image description here

enter image description here

2
répondu Arvind Krmar 2015-10-15 10:23:18

Oui!!!

Install-Package Microsoft.AspNet.WebApi -Version 5.0.0

ça marche très bien dans mon cas....thnkz

2
répondu X-Coder 2015-12-07 18:59:46

Cela pourrait aider quelqu'un.

j'ai décidé d'utiliser L'application MVC4.

l'exécution du projet, a travaillé

a ensuite installé quelques paquets comme,

Microsoft ASP.NET Web API 2.2 (4 packages)

Microsoft ASP.NET page D'aide de L'API web 2.2

Microsoft ASP.NET Web API 2.2 OWIN

l'exécution du projet, même message d'erreur mentionné dans la question

Solution:

Dans "1519110920 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>



Problème Résolu


mais alors, certains correctif erreur trouvée, Pour le résoudre, aller à voir dossier de votre projet MVC4, trouver second web.config fichier et la version modifiée de 2.0.0.0 à 3.0.0.0 comme le montre la dessous.


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

2
répondu micronyks 2016-02-13 09:48:02

j'ai trouvé la solution ! Supprimez le dossier nommé paquet dans le répertoire du projet, puis reconstruisez pour l'exécuter.

1
répondu Ashitosh birajdar 2015-07-07 07:41:58
<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>
1
répondu ravula sandeep 2015-07-28 12:19:54

dans mon cas, je manquais en fait mon web.config , qui avait les redirections de liaison appropriées. La restauration du web.config a résolu l'erreur.

1
répondu Brandon Hawbaker 2016-07-26 19:45:24

Moi n'a rien, juste un copié développement Bin dossier Dll en ligne déployée Bin du dossier et il a bien fonctionné pour moi.

1
répondu Anjan Kant 2017-06-15 15:46:10

la bonne solution pour résoudre ce problème est de suivre les étapes

. Mettre à jour Visual studio si vous avez une version plus ancienne à 15.5.4 (optionnel)

  1. Supprimer tous les contraignant les redirections à partir du web.config

  2. ajouter ceci au fichier csproj:

 <PropertyGroup>
  <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
  <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
  1. "151930920 de Construire".

  2. dans le dossier bin, il devrait y avoir un fichier (WebAppName).dll.config .

  3. , Il faut avoir des redirections. Copier sur le web.config

  4. Supprimer ce qui précède a été copié du fichier csproj à nouveau

  5. Il doit travailler

Detailed Blog

1
répondu Sajeetharan 2017-12-29 17:19:04

pour moi, ce n'était que s'écraser avec cette erreur sur un environnement de production, pas sur une machine locale; ce qui l'a résolu a été de supprimer le contenu de /bin folder et puis de le régénérer à nouveau.

1
répondu Oana Leva 2018-02-22 11:51:17

comme d'autres l'ont dit, il suffit de réinstaller le paquet MVC à votre projet web en utilisant nuget, mais assurez-vous d'ajouter le paquet MVC à tous les projets dépendant du projet web, tels que les tests unitaires. Si vous construisez inclus chaque projet individuellement, vous verrez sorcière requièrent la mise à jour.

0
répondu DeeArgee 2015-02-09 15:39:23

j'ai eu le même problème et réinstaller le paquet ne fonctionne pas.

My application runs in LocalIIS(not IIS EXPRESS). J'active la Trace de charge D'assemblage et découvre qu'il veut le système de charge .Web.Http charger à partir du dessous de la temp attrape. donc supprimer toutes les prises des dossiers .

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET dossiers [ma demande]

0
répondu Mohammadreza 2015-03-16 08:49:19

j'ai résolu ce problème en inversant les changements que nuget avait apportés à mon web.config après avoir lancé nuget . Retournez les modifications à une version de travail précédente.

  <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>
0
répondu roo2 2015-07-23 00:48:10

ce qui a résolu le problème pour moi était la réinstallation du Microsoft ASP.NET API web 2.2 page D'aide et Microsoft ASP.NET API Web 2.2 paquets OWIN . J'ai réinstallé les deux en même temps, mais je pense que c'est le premier qui a réglé le problème.

j'ai essayé les premières solutions proposées ici mais cela n'a pas aidé, puis j'ai comparé mes dépendances avec celles d'un projet qui a fonctionné (à partir d'un cours sur Pluralsight) et les deux dépendances ci-dessus étaient une version plus basse (5.0.0) donc je les ai mis à jour à 5.2.3 et ça a commencé à fonctionner.

0
répondu lukegf 2015-12-30 20:15:24

j'ai eu ça d'un service de la WCF. Pour moi (comme le problème s'affichait dans dev local), j'ai simplement dû supprimer le contenu du dossier bin sous la solution. La reconstruction fonctionne bien une fois de plus.

0
répondu DubMan 2016-03-09 10:44:33

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

0
répondu oscarMg 2016-10-12 19:15:31

je pourrais résoudre le même problème avec le système.Net.HTTP en ajoutant une référence d'assemblage dans app.configuration de l'application principale.

  <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>
0
répondu Parag Bangad 2017-07-19 07:50:17

j'ai eu un problème similaire. Tout fonctionnait avant. Il a été à l'origine fait en utilisant des formulaires Web et plus tard ajouté API Web pour certaines choses.

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

ce qui a fonctionné a été, dans Visual Studio, de changer les paramètres de profil de publication de la version au débogage. Étrange, mais c'est ce qui a fonctionné. Si le partage ici.

0
répondu joym8 2017-09-12 18:24:16

j'ai eu ce problème lors du déploiement sur Azure en utilisant la fonctionnalité publier. N'oubliez pas de vider 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 doivent chasser autour pour cela comme je l'ai fait. Tout était la même version dans mon projet / solution, mais pas à la destination que je déployais.

0
répondu Shelby115 2017-09-15 16:55:37

Si vous utilisation de plusieurs projets sur une solution , et d'appeler la méthode dans un projet à un autre projet, assurez-vous que tous les projets (appelé projet et identification de projet) usage unique 'System.Net.Http' version .

0
répondu MohammadSoori 2018-06-27 07:21:03

changer le drapeau de la version Specfic de true to false pour la dll dans la référence

0
répondu user2992715 2018-09-26 05:46:07