[A] System.Web.WebPages.Razor.Configuration.HostSection kann nicht in das Problem ... web.config umgewandelt werden

158

Ich erhalte die folgende Fehlermeldung:

[A] System.Web.WebPages.Razor.Configuration.HostSection kann nicht in [B] System.Web.WebPages.Razor.Configuration.HostSection umgewandelt werden. Typ A stammt aus 'System.Web.WebPages.Razor, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' im Kontext 'Default' am Speicherort 'C: \ WINDOWS \ Microsoft.Net \ Assembly \ GAC_MSIL \ System .Web.WebPages.Razor \ v4.0_2.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll '. Typ B stammt aus 'System.Web.WebPages.Razor, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' im Kontext 'Default' am Speicherort 'C: \ Users \ MyName \ AppData \ Local \ Temp \ Temporary ASP.NET-Dateien \ root \ 63e7ff36 \ a1cb775d \ Assembly \ dl3 \ 8f568c18 \ 9b7ddacf_d04dcf01 \ System.Web.WebPages.Razor.dll '.

Ich habe im Stackoverflow nach ähnlichen Problemen gesucht und deren Lösungen verwendet, aber es scheint das Problem, das bei mir auftritt, nicht zu beheben.

Es trat plötzlich auf, ich drückte nur auf saubere Lösung und dieser Fehler trat auf. Ich habe auch angefangen, Nuget Package Restore für die Lösung zu verwenden. Ich habe auch meine Pakete aktualisiert (mit dem Update-Paket), sodass eines davon möglicherweise etwas mit diesem Problem zu tun hat.

Maxim Geerinck
quelle

Antworten:

274

Ich verwende VS2013, MVC 5.2.2.0, Web Api 2. Ich habe gerade alle Versionen von 2.0.0.0 auf 3.0.0.0 geändert. Der folgende Abschnitt von Web.config befindet sich im Ordner View meines Projekts.

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

Und das Problem wird gelöst. BINGO !!

Kuntal Ghosh
quelle
7
Das hat den Job für mich gemacht. Vielen Dank!
Joseph Woodward
1
Das hat es für mich gelöst. Ich konvertiere eine Webforms-App in MVC5.
Ray
1
@guneysus, wie würden Sie das Äquivalent von Kuntals Antwort ohne manuelle Bearbeitung machen?
Twm
@twm Im Allgemeinen Update-Packagebearbeitet auchweb.config
Guneysus
Deshalb liebe ich so!
Homunculus Reticulli
102

Ich füge nur meine zwei Cent zu dieser Ausgabe hinzu.

Ich stellte fest, dass die Ursache für diesen Fehler für mich darin bestand, dass die Views-Ordner web.config referenzierten, System.Web.WebPages.Razor, Version=2.0.0.0wenn alles andere verwendet wurde3.0.0.0

Das Nuget-Paket-Upgrade hat diesen Ordner anscheinend nicht berücksichtigt.

Niclas Lindqvist
quelle
1
es ist genauer! web.config im Ansichtsordner.
Rohit Verma
58

Die Ursache für diesen Fehler ist die Datei web.config im Ordner Ansichten, die auf System.Web.WebPages.Razor verweist, Version = 2.0.0.0 anstelle von 3.0.0.0.

In der Regel kann dies nach einem Nuget-Paket-Upgrade geschehen, das diesen Ordner nicht berücksichtigt.

Aktualisieren Sie die Views\Web.configDatei:

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

Weitere Informationen zum Upgrade auf MVC 5 finden Sie unter 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

Maxim Geerinck
quelle
5
es klingt nicht nach einer Lösung, sondern arbeitet für mich herum. einige Projekte könnten nur auf mvc4 werden je
Stenly
12
Insbesondere scheint die Behebung dieses Fehlers im Abschnitt "Aktualisieren der web.config-Dateien im Ordner" Ansichten "" zu liegen. Es scheint, dass die Aktualisierung von MVC4 -> MVC5 mit NuGet die Versionsnummern in Views / Web.config nicht automatisch aktualisiert.
Tyler
Danke für den Link! Es wäre schön gewesen, wenn das NuGet-Update zumindest einen Link zu dieser Seite gezeigt hätte ...
Jedidja
Ich habe die Anleitung befolgt und kann meine Site jetzt nicht mehr im Debug-Modus ausführen - sagt mir "... Projekt mit dem Ausgabetyp der Klassenbibliothek kann nicht gestartet werden ..."
Matt
2
Bei mir funktionierte mein Hauptproblem, weil ich die Versionen in der Datei web.config im Unterordner Ansichten nicht aktualisiert hatte.
connectedsoftware
13

Versuchte alle oben genannten Methoden und das Problem wurde immer noch nicht gelöst, bis ich die folgenden Zeilen in web.config direkt unter dem Projektordner einfügte.

  <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>
Jian Huang
quelle
3

Wenn Sie dies mit dem Route Debugger erhalten, müssen Sie die Datei web.config im Ordner Views unter dem Bereich für den Route Debugger aktualisieren.

Luke Puplett
quelle
Lebensretter. Vielen Dank.
6footunder
Kannst du das bitte klären.
Si8
1

In meinem Fall habe ich dieses Problem gelöst, indem ich auch die Web.config auf dem Live-Server aktualisiert habe, den der VS beim Upgrade auf MVC 5 aktualisiert hat

Rajeemcariazo
quelle