web-dev-qa-db-fra.com

[A] System.Web.WebPages.Razor.Configuration.HostSection ne peut pas être converti en ... problème de web.config

Je reçois l'erreur suivante:

[A] System.Web.WebPages.Razor.Configuration.HostSection ne peut pas être converti en [B] System.Web.WebPage.Razor.Configuration.HostSection. Le type A provient de 'System.Web.WebPages.Razor, Version = 2.0.0.0, Culture = neutre, PublicKeyToken = 31bf3856ad364e35' dans le contexte 'Par défaut' à 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 = neutre, PublicKeyToken = 31bf3856ad364e35' dans le contexte 'Par défaut' à l'emplacement 'C:\Utilisateurs\MonNom\AppData\Local\Temp\Temporary Fichiers ASP.NET\root\63e7ff36\a1cb775d\Assembly\dl3\8f568c18\9b7ddacf_d04dcf01\System.Web.WebPages.Razor.dll '.

J'ai effectué des recherches sur différents problèmes similaires à travers stackoverflow et j'ai utilisé leurs solutions, mais cela ne semble pas résoudre le problème que je rencontre.

Cela s'est produit soudainement, je viens d'appuyer sur une solution propre et cette erreur est apparue. J'ai également commencé à utiliser la restauration de package Nuget sur la solution. J'ai également mis à jour mes packages (à l'aide de Update-package) afin qu'un de ceux-ci puisse avoir quelque chose à voir avec ce problème.

157
Maxim Geerinck

La cause de cette erreur est la configuration web.config dans le dossier Vues faisant référence à System.Web.WebPages.Razor, Version = 2.0.0.0 au lieu de 3.0.0.0.

En règle générale, cela peut se produire après la mise à niveau d'un paquet Nuget, qui ne prend pas en compte ce dossier.

Mettez à jour le fichier Views\Web.config:

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

pour plus d'informations sur la mise à niveau vers MVC 5 http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api- projet à aspnet-mvc-5-and-web-api-2

53
Maxim Geerinck

J'utilise VS2013, MVC 5.2.2.0, Web Api 2. Je viens de changer toutes les versions de 2.0.0. à .0.0. de la section suivante de - Web.config réside dans le dossier View de mon projet.

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

Et le problème est résolu. BINGO !!

271
Kuntal Ghosh

J'ajoute simplement mes deux cents à ce problème.

J'ai constaté que la cause de cette erreur était que les dossiers Vues web.config faisait référence à System.Web.WebPages.Razor, Version=2.0.0.0 alors que tout le reste utilisait 3.0.0.0

Il semble que la mise à niveau du paquet nuget n'ait pas pris en compte ce dossier d'une manière ou d'une autre.

101
Niclas Lindqvist

J'ai essayé toutes les méthodes ci-dessus, et le problème n'était toujours pas résolu tant que je n'avais pas inséré les lignes suivantes dans web.config directement sous le dossier du projet.

  <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>
10
Jian Huang

Si vous obtenez cela avec le débogueur de route, vous devez mettre à jour le fichier web.config dans le dossier Vues sous la zone du débogueur de route.

3
Luke Puplett

Dans mon cas, j'ai résolu ce problème en mettant également à jour le Web.config sur le serveur actif mis à jour par le VS lors de la mise à niveau vers MVC 5.

1
rajeemcariazo