[système.Web.page.Rasoir.Configuration.HostSection ne peut pas être converti en ... web.config problème

Je reçois l'erreur suivante:

[Un]Système.Web.page.Rasoir.Configuration.HostSection ne peut pas être converti pour [B]Système.Web.page.Rasoir.Configuration.HostSection. Tapez Un provient de " Système.Web.page.Rasoir, Version=2.0.0.0, Culture = neutre, PublicKeyToken = 31bf3856ad364e35' dans le contexte "Par défaut" à l'emplacement 'C:WINDOWSMicrosoft.NetassemblyGAC_MSILSystem.Web.WebPages.Razorv4.0_2.0.0.0__31bf3856ad364e35System.Web.WebPages.Razor.dll'. Type B provient de " Système.Web.page.Rasoir, Version=3.0.0.0, Culture = neutre, PublicKeyToken = 31bf3856ad364e35' dans le contexte 'Par défaut' à l'emplacement 'C:UsersMyNameAppDataLocalTempTemporary ASP.NET Fichiers root 63e7ff36a1cb775d assembly dl38f568c189b7ddacf_d04dcf01 System.Web.page.Rasoir.dll".

J'ai cherché à travers stackoverflow pour des problèmes similaires et j'ai utilisé leurs solutions mais cela ne semble pas résoudre le problème que je rencontre.

Il soudainement s'est produit, je viens d'appuyer sur une solution propre et cette erreur est apparue. J'ai également commencé à utiliser NuGet package restore sur la solution. J'ai également mis à jour mes paquets (en utilisant Update-package), donc l'un d'entre eux pourrait avoir quelque chose à voir avec ce problème.

148
demandé sur Dyrandz Famador 2014-04-01 21:57:00

6 réponses

J'utilise VS2013, MVC 5.2.2.0, Api Web 2. J'ai juste changé de toutes les versions à partir de 2.0.0.0 pour 3.0.0.0 de la section suivante de Web.config réside dans le dossierView 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 !!

261
répondu Kuntal Ghosh 2014-12-10 10:57:26

Juste en ajoutant mes deux cents à ce problème.

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

Semble que la mise à niveau nuget-package n'a pas tenu compte de ce dossier d'une manière ou d'une autre.

96
répondu Niclas Lindqvist 2014-12-09 10:07:07

La cause de cette erreur est le web.config dans le système de référencement du dossier Views.Web.page.Rasoir, Version=2.0.0.0, au lieu de 3.0.0.0.

Généralement, cela peut se produire après une mise à niveau nuget-package, qui ne tient pas compte de 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-project-to-aspnet-mvc-5-and-web-api-2

48
répondu Maxim Geerinck 2018-01-23 16:05:20

Essayé toutes les méthodes ci-dessus, et le problème n'a toujours pas été résolu jusqu'à ce que j'insère les lignes suivantes dans le 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>
8
répondu Jian Huang 2017-04-25 18:25:10

Si vous obtenez ceci avec le débogueur de Route, vous devez mettre à jour le web.config dans le dossier Vues sous la zone pour le débogueur de Route.

3
répondu Luke Puplett 2015-06-10 16:37:35

Dans mon cas, j'ai résolu cela en mettant également à jour le Web .config sur le serveur live QUE LE VS a mis à jour lors de la mise à niveau vers MVC 5

1
répondu rajeemcariazo 2014-12-05 05:55:13