115 votes

Le site ne fonctionne plus dans asp.net System.Web.WebPages.Razor.Configuration.HostSection cannot be cast to

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 pendant l'exécution de la demande 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 cannot be cast en [B]System.Web.WebPages.Razor.Configuration.HostSection. Le type A provient de 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutre, 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 de source :

J'ai installé MVC 3 sur Serer 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 le réparer ?

200voto

Ian Flynn Points 1670

Dans le Web.config racine, assurez-vous que assemblyBinding contient la bonne version de l'assemblage "System.Web.WebPages.Razor" et "System.Web.Mvc". Vérifiez leur existence réelle ainsi que l'absence de ma balise d'assemblage "System.Web.WebPages.Razor", ce qui a provoqué l'erreur. Les versions de mes assemblages étaient respectivement 3.0 et 5.0 au moment de la rédaction de ce document, avec des mises à jour NuGet complètes. Le code devrait ressembler à quelque chose comme ci-dessous. Le publicKeyToken restera le même entre les versions. Merci !

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <!--some more bidings-->
  <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages.Razor"
            publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
  </dependentAssembly>

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
  </dependentAssembly>
<!--some more bidings-->
</assemblyBinding>

40voto

user3141889 Points 291

Mon cas était la mise à niveau de mvc4 à mvc5.

Je me suis assuré que mes références étaient synchronisées (avec une application mvc5 nouvellement créée), j'ai mis à jour le fichier web.config en conséquence et cela ne fonctionnait toujours pas. Cela a finalement fonctionné lorsque j'ai modifié mon fichier web.config ( Annuaire INSIDE THE VIEWS ) de :

<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
  <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>

A ceci :

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

RAPPEL : arrêter iis (express ou native), nettoyer la solution, construire et exécuter.

34voto

Brad Christie Points 58505

Au cas où la réponse de Ian n'aurait pas suffi (et que les assemblages soient corrects, mais que le moulage soit toujours faux), il est possible que vous n'ayez pas mis à jour la page d'accueil. <configSections> pour refléter le nouvel assemblage. Assurez-vous que la partie assemblage fait également référence à la version 3.0 de la System.Web.WebPages.Razor bibliothèque, par exemple.

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

(Notez qu'ils font tous référence à version=3.0.0 maintenant)

15voto

Ken Mc Points 561

La solution de Ian a fonctionné pour un projet, mais pour d'autres, j'ai besoin des informations plus complètes contenues dans le document Comment passer à MVC 5 et à l'API Web 2 ?

2voto

codebased Points 669

Problème :

[A]System.Web.WebPages.Razor.Configuration.HostSection ne peut pas être transformé en [B]System.Web.WebPages.Razor.Configuration.HostSection. en [B]System.Web.WebPages.Razor.Configuration.HostSection. Le type A provient de 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutre, 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=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' dans le contexte 'Default' à l'emplacement ' C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Fichiers \rbs.ceds.todomvcdemo\73d0b7c7\46e3986d\assembly\dl3\21020800\101279fc_da94cf01\System.Web.WebPages.Razor.dll '.

Identification :

L'erreur se situe au niveau du fichier de configuration, c'est-à-dire web.config, de votre projet.

Vous constaterez que la version de Razor est fixée à 2.0.0.0 alors que la version 2.0.0.0 n'est pas disponible dans votre projet.

Solution :

C'est simple, il suffit de changer la version de 2.0.0.0 à 3.0.0.0 et la magie opère.

type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0 type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.WebPages.Razor, Version=3.0.0.0

Il n'est pas nécessaire de mettre une redirection ou autre car cela compliquerait les choses.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X