J'ai un problème comme celui-ci sur le serveur
[A] System.Web.WebPages.Razor.Configuration.HostSection ne peut pas être converti en [B] System.Web.WebPages.Razor.Configuration.HostSection. Le type A provient de 'System.Web.WebPages.Razor, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' dans le contexte 'Default' à l'emplacement 'C: \ Windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System .Web.WebPages.Razor \ v4.0_2.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll '. Le type B provient de 'System.Web.WebPages.Razor, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' dans le contexte 'Default' à l'emplacement 'C: \ Windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System .Web.WebPages.Razor \ v4.0_1.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll '.
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.InvalidCastException: [A] System.Web.WebPages.Razor.Configuration.HostSection ne peut pas être converti en [B] System.Web.WebPages.Razor.Configuration.HostSection. Le type A provient de 'System.Web.WebPages.Razor, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' dans le contexte 'Default' à l'emplacement 'C: \ Windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System .Web.WebPages.Razor \ v4.0_2.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll '. Le type B provient de 'System.Web.WebPages.Razor, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' dans le contexte 'Default' à l'emplacement 'C: \ Windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System .Web.WebPages.Razor \ v4.0_1.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll '.
Erreur source:
J'ai installé MVC 3 sur le sereur et sur mon ordinateur. J'ai essayé de le remplacer par une base de code vieille de 15 jours mais le même problème existe.
maintenant je veux le résoudre. Quelqu'un sait-il comment je peux y remédier.
la source
Réponses:
Dans le Web.config racine, assurez-vous que assemblyBinding contient la version appropriée pour l'assembly «System.Web.WebPages.Razor» et «System.Web.Mvc». Vérifiez leur existence réelle ainsi que ma balise d'assembly "System.Web.WebPages.Razor" manquait à l'origine de l'erreur. J'avais mes versions d'assembly définies respectivement sur 3.0 et 5.0 au moment de la rédaction de cet article avec les mises à jour complètes de NuGet. Le code devrait ressembler à quelque chose comme ci-dessous. Le publicKeyToken restera le même entre les versions. À votre santé!
la source
Mon cas passait de mvc4 à mvc5.
Je me suis assuré que mes références étaient synchronisées (avec une application mvc5 nouvellement créée), mis à jour le fichier web.config en conséquence et cela ne fonctionnait toujours pas. Cela a finalement fonctionné lorsque j'ai changé mon fichier web.config (répertoire INSIDE THE VIEWS ) de:
Pour ça:
RAPPELEZ-VOUS: arrêtez iis (express ou natif), nettoyez la solution, construisez et exécutez.
la source
Juste au cas où la réponse d'ian ne serait pas suffisante (et les assemblages corrects, mais le casting est toujours faux) il y a de fortes chances que vous n'ayez pas encore mis à jour le
<configSections>
pour refléter le nouvel assemblage. assurez-vous que la partie d'assemblage fait également référence à la version 3.0 de laSystem.Web.WebPages.Razor
bibliothèque. par exemple(Notez qu'ils font tous référence
version=3.0.0
maintenant)la source
La solution d'Ian a fonctionné dans un projet, mais pour d'autres, j'ai besoin d'informations plus complètes dans Comment mettre à niveau vers MVC 5 et Web API 2
la source
Ce problème est très courant lorsque vous développez pour MVC 4, puis que vous installez soudainement un package qui est disponible dans une version plus récente afin de casser toute l'application.
La seule solution à ce problème consiste à mettre à niveau l'ensemble de votre application vers une version plus récente ou à installer l'ancien package compatible avec votre application.
la source
Problème:
Identification:
L'erreur vient du fichier de configuration ie web.config de votre projet.
Ici, vous trouverez que la version de Razor est définie sur 2.0.0.0 alors que, comme dans votre projet, la version 2.0.0.0 n'est pas disponible.
Solution:
C'est simple, il suffit de changer la version de 2.0.0.0 à 3.0.0.0 et cela fera la magie.
Vous n'avez pas besoin de mettre la redirection ou autre, car cela compliquera les choses.
la source
J'ai trouvé un problème et une solution.
1 Je cible mon code sur 4.0, puis je télécharge le code et cela fonctionne. Avant cela, je mets également à jour mon code vers asp.net MVC 4.
maintenant ça marche :)
la source
Ouvrez l'emplacement des deux fichiers dll dans votre système, copiez l'une des dll de votre emplacement de fichier dans l'autre
et essayez d'exécuter le projet.
la source
Une autre façon de résoudre ce problème, sans avoir à mettre à jour les références, est la suivante
la source