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
J'obtiens 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 localisé ne correspond pas à la référence d'assembly. (Exception de HRESULT: 0x80131040)
Description: une exception non gérée s'est produite lors de l'exécution de la requête Web actuelle. Veuillez consulter la trace de la pile 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 localisé ne correspond pas à la référence d'assembly. (Exception de HRESULT: 0x80131040)
Erreur source:
Ligne 48: Ligne 49: Ligne 50:} Ligne 51: Ligne 52: protected void Application_BeginRequest (expéditeur de l'objet, EventArgs e)
Fichier source: d: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ Global.asax.cs Ligne: 50
Suivi du 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 = neutral, PublicKeyToken = 31bf3856ad364e35 (entièrement spécifié) LOG: Appbase = file: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/ LOG: Initial PrivatePath = D: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ bin Assemblage d'appel: ThirdPartyWebAPI, Version = 1.0.0.0, Culture = neutre, 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 la machine fichier à partir de C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config. LOG: Référence post-stratégie: System.Web.Http, Version = 4.0.0.0, Culture = neutre, PublicKeyToken = 31bf3856ad364e35 LOG: Tentative de téléchargement du nouveau fichier URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files / 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/Temporary ASP.NET Files / 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 d'assembly a entraîné l'incohérence: Version principale ERR: échec de la configuration de l'assembly (hr = 0x80131040). Le sondage est terminé. Tentative de téléchargement du nouveau fichier URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files / 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 d'assembly a entraîné l'incohérence: Version principale ERR: échec de la configuration de l'assembly (hr = 0x80131040). Le sondage est terminé. Tentative de téléchargement du nouveau fichier URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files / 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 d'assembly a entraîné l'incohérence: Version principale ERR: échec de la configuration de l'assembly (hr = 0x80131040). Le sondage est terminé. Échec de la configuration de l'assemblage (hr = 0x80131040). Le sondage est terminé. Échec de la configuration de l'assemblage (hr = 0x80131040). Le sondage est terminé.
Trace de la pile:
[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 localisé ne correspond pas à la référence d'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 localisé ne correspond pas à la référence d'assembly. (Exception de HRESULT: 0x80131040)]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode (HttpContext contexte, HttpApplication app) 9935033
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS (IntPtr appContext, HttpContext contexte, MethodInfo [] Chariot) 118
System.Web.HttpApplication .InitSpecial (état HttpApplicationState, gestionnaires MethodInfo [], IntPtr appContext, contexte HttpContext) +172
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance (IntPtr appContext, contexte 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 localisé ne correspond pas à la référence d'assembly. (Exception de HRESULT: 0x80131040)]
System.Web.HttpRuntime.FirstRequestInit (contexte HttpContext) +9913572 System.Web.HttpRuntime.EnsureFirstRequestInit (contexte HttpContext) +101 System.Web.HttpPruntime.ProcessWeb.HttpRuntime.Process (Contexte HttpContext) +101 System.Web.HttpRuntestime.ProcessWeb.
Informations sur la version: Version de Microsoft .NET Framework: 4.0.30319; Version ASP.NET: 4.0.30319.18408
la source
Réponses:
J'ai résolu ce problème en réinstallant le package NuGet , qui corrige les dépendances brisées. Depuis le gestionnaire de packages, exécutez:
la source
Pour résoudre l'erreur Impossible de charger le fichier ou l'assembly 'System.Web.Http', utilisez NuGet pour installer l'API Web 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)
Dans la fenêtre de gestion des packages NuGet sur le côté gauche, cliquez sur en ligne, puis en haut à droite, recherchez Web Host et installez Microsoft ASP.NET Web API 2.1 Web Host. (Une fois installé, le bouton d'installation deviendra une coche verte)
Après cela, le projet se rechargera et quand il sera reconstruit, l'erreur sera résolue et le projet déboguera et s'exécutera. L'erreur aura disparu et vous pourriez être «La ressource est introuvable. Ajoutez simplement l'url (ex de localhost: 52088 / à localhost: 52088api / products)
Votre question était bonne et m'a aidé.
J'espère que cette réponse vous aidera!
la source
Vous devez ajouter des redirections d'assembly:
Vous devrez probablement le faire pour quelques assemblys supplémentaires comme l'hébergement Web, etc.
la source
System.Web.Http
.Ou vous pouvez le faire à partir de NuGet Package Manager Console
Et puis vous pourrez ajouter la référence à System.Web.Http.WebHost 5.0
la source
Lorsque j'ai installé l'aide Web Api 2.2, cette erreur a commencé. J'ai ajouté ceci au web.config et cela a résolu mon problème.
la source
J'ai simplement mis
Copy Local = true
sur l'assemblage manquant et cela a fonctionné. Cela se produit bien sûr en faisant un clic 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:Cela devrait alors résoudre un problème car il peut y avoir plus d'un assemblage à l'origine du problème - ce que j'ai fait est d'avoir sélectionné tous les assemblages et de faire un clic droit dessus; propriétés sélectionnées; et définissez-les tous sur Copy Local = true; puis republier.
la source
La solution appropriée pour résoudre ce problème consiste à suivre les étapes
. Mettez à jour Visual studio si vous avez une version plus ancienne vers 15.5.4 (facultatif)
Supprimer toutes les redirections de liaison de web.config
Ajoutez ceci au fichier csproj:
Construire.
Dans le dossier bin, il devrait y avoir un
(WebAppName).dll.config
fichier.Il devrait contenir des redirections. Copiez-les dans le web.config
Supprimez à nouveau l'élément ci-dessus extrait du fichier csproj
Ça devrait marcher
Detailed Blog
la source
Pour moi, il ne plantait avec cette erreur que sur un environnement de production, pas sur une machine locale; ce qui a résolu c'était de supprimer le contenu du dossier / bin, puis de le régénérer à nouveau.
la source
Juste un conseil évident mais utile possible .... n'oubliez pas de vérifier que la nouvelle version que vous spécifiez dans votre liaison d'assembly webconfig est la même version que vous référencez dans vos références de projet. (c'est-à-dire au moment où j'écris ceci ... ce serait 5.1.0.0 si vous avez récemment fait un NUGet sur System.Web.Http
la source
la source
Cela pourrait aider quelqu'un.
J'ai décidé d'utiliser l'application MVC4.
exécuter un projet, travaillé
Puis installé quelques packages comme,
Microsoft ASP.NET WEB API 2.2 (4 packages)
Microsoft ASP.NET WEB API 2.2 Page d'aide
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 la résoudre, accédez au dossier VIEW de votre projet MVC4, recherchez le fichier
second
web.config et la version modifiée de 2.0.0.0 à 3.0.0.0 comme indiqué ci-dessous.la source
Dans mon cas, je manquais
web.config
complètement mon , qui avait les redirections de liaison appropriées. La restauration du aweb.config
résolu l'erreur.la source
Je pourrais résoudre un problème similaire avec System.Net.HTTP en ajoutant une référence d'assemblage dans app.config de l'application principale.
la source
J'ai trouvé la solution! Supprimez le dossier nommé package dans le répertoire du projet, puis reconstruisez-le pour l'exécuter.
la source
la source
OUI!!!
Cela fonctionne bien dans mon cas .... thnkz
la source
Je n'ai rien fait, j'ai simplement copié les DLL du dossier Bin de développement dans le dossier Bin déployé en ligne et cela a bien fonctionné pour moi.
la source
Comme d'autres l'ont dit, réinstallez simplement le package MVC dans votre projet Web à l'aide de nuget, mais assurez-vous d'ajouter 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.
la source
J'ai eu le même problème et la réinstallation du package ne fonctionne pas.
Mon application s'exécute dans LocalIIS (pas IIS EXPRESS). J'active Assembly Load Trace et découvre qu'il veut charger la charge System.Web.Http à partir de la capture de température inférieure. alors supprimez tous les dossiers catch qu'il contient .
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Fichiers ASP.NET temporaires [mon application]
la source
J'ai résolu ce problème en annulant les modifications que nuget avait apportées à mon
web.config
après l'exécutionnuget
. Rétablissez les modifications apportées à une version de travail précédente.la source
Ce qui a résolu le problème pour moi a été de réinstaller la page d'aide de Microsoft ASP.NET Web API 2.2 et Microsoft ASP.NET Web API 2.2 OWIN packages . J'ai réinstallé les deux en même temps, mais je pense que c'est l'ancien qui a résolu 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 fonctionnait (à partir d'un cours sur Pluralsight) et les deux dépendances ci-dessus étaient une version inférieure (5.0.0 ) donc je les ai mis à jour vers 5.2.3 et cela a commencé à fonctionner.
la source
J'ai eu ceci d'un service WCF. Pour moi (comme le problème s'affichait dans le développement local), je devais simplement supprimer le contenu du dossier bin sous la solution. La reconstruction fonctionne à nouveau correctement.
la source
Version ASP.NET: 4.0.30319.18408 appartient à .Net4.5 et System.Web.Http Version = 4.0.0.0 est compatible pour .NET4.0. Donc, les versions que vous avez ne sont pas compatibles. Vous devez mettre à jour votre System.Web.Http vers la version 5.0.0.0, qui est compatible avec .Net4.5
la source
J'ai eu un problème similaire. Tout fonctionnait avant. Il a été créé à l'origine à l'aide de Web Forms et plus tard sur une API Web ajoutée pour certaines choses.
Ce qui a fonctionné était, dans Visual Studio, de modifier les paramètres de profil de publication de Release à Debug. Étrange, mais c'est ce qui a fonctionné. Donc partager ici.
la source
J'ai rencontré ce problème lors du déploiement sur Azure à l'aide de la fonctionnalité de publication. 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 devraient chercher cela comme je l'ai fait. Tout était de la même version dans mon projet / solution, mais pas à la destination vers laquelle je déployais.
la source
Si vous utilisez plusieurs projets sur une solution et appelez une méthode dans un projet vers un autre projet, assurez-vous que tous les projets (appelés projet et projet appelant) utilisent la
'System.Net.Http'
version unique .la source
Changer l'indicateur de version Specfic de true à false pour la dll dans la référence
la source
J'ai eu le même problème avec System.Web.Http.WebHost, la version = 5.2.6.0 étant référencée mais le dernier package NuGet était 5.2.7.0. J'ai édité les fichiers web.config, réinstallé le package NuGet, puis modifié les fichiers de projet de Visual Studio pour tous mes projets pour m'assurer qu'aucune référence à 5.2.6.0 ne persistait. Même après tout cela, le problème persistait.
Ensuite, j'ai cherché dans le dossier bin pour le projet qui lançait l'exception, où j'ai trouvé une DLL pour l'un de mes autres projets qui n'est pas une dépendance et n'aurait jamais dû y être. J'ai supprimé la DLL incriminée (qui avait été compilée à l'aide de la version 5.2.6.0 de System.Web.Http.WebHost), reconstruit le projet gênant et maintenant il fonctionne.
la source