[A] System.Web.WebPages.Razor.Configuration.HostSection nie może zostać przesłany do… problem z web.config


158

Otrzymuję następujący błąd:

[A] System.Web.WebPages.Razor.Configuration.HostSection nie może zostać przesłany do [B] System.Web.WebPages.Razor.Configuration.HostSection. Typ A pochodzi z „System.Web.WebPages.Razor, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35” w kontekście „Default” w lokalizacji „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 pochodzi z „System.Web.WebPages.Razor, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35” w kontekście „Default” w lokalizacji „C: \ Users \ MyName \ AppData \ Local \ Temp \ Temporary Pliki ASP.NET \ root \ 63e7ff36 \ a1cb775d \ assembly \ dl3 \ 8f568c18 \ 9b7ddacf_d04dcf01 \ System.Web.WebPages.Razor.dll '.

Przeszukałem stosy w celu znalezienia podobnych problemów i zastosowałem ich rozwiązania, ale wydaje się, że nie rozwiązuje to problemu, którego doświadczam.

Nagle się wydarzyło, właśnie nacisnąłem czysty roztwór i wyskoczył ten błąd. Zacząłem również korzystać z przywracania pakietu NuGet w rozwiązaniu. Zaktualizowałem również moje pakiety (używając Update-package), więc jeden z nich może mieć coś wspólnego z tym problemem.

Odpowiedzi:


274

Używam VS2013, MVC 5.2.2.0, Web Api 2. Właśnie zmieniłem wszystkie wersje z 2.0.0.0 na 3.0.0.0 poniższej sekcji pliku Web.config, który znajduje się w folderze Widok mojego projektu.

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

I problem zostaje rozwiązany. BINGO !!


7
To wykonało pracę za mnie. Dzięki!
— Joseph Woodward

1
To rozwiązało to dla mnie. Konwertuję aplikację webforms na MVC5.
— Ray

1
@guneysus, jak zrobiłbyś odpowiednik odpowiedzi Kuntala bez ręcznej edycji?
— twm

@twm Generalnie Update-Packagerównież edytujeweb.config
— guneysus

Dlatego TAK KOCHAM!
— Homunculus Reticulli

102

Dodam tylko moje dwa centy do tego numeru.

Zauważyłem, że przyczyną tego błędu było dla mnie to, że foldery widoków web.config odwoływały się, System.Web.WebPages.Razor, Version=2.0.0.0gdy wszystko inne było używane3.0.0.0

Wydaje się, że uaktualnienie pakietu nuget nie uwzględniło w jakiś sposób tego folderu.


1
jest bardziej precyzyjny! web.config w folderze widoków.
— Rohit Verma

58

Przyczyną tego błędu jest plik web.config w folderze Views odwołujący się do System.Web.WebPages.Razor, Version = 2.0.0.0 zamiast 3.0.0.0.

Zwykle może się to zdarzyć po uaktualnieniu pakietu nuget, które nie uwzględnia tego folderu.

Zaktualizuj Views\Web.configplik:

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

aby uzyskać więcej informacji na temat aktualizacji do 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


5
nie brzmi to jak naprawa, raczej obejść dla mnie. niektóre projekty mogą zależeć tylko od mvc4
— stenly

12
W szczególności wygląda na to, że poprawka dla tego błędu znajduje się w sekcji „Zaktualizuj pliki web.config w folderze Widoki”. Wydaje się, że aktualizacja z MVC4 -> MVC5 za pomocą NuGet nie aktualizuje automatycznie numerów wersji w Views / Web.config.
— Tyler

Dzięki za link! Byłoby miło, gdyby aktualizacja NuGet mogła przynajmniej pokazać link do tej strony ...
— Jedidja

Postępowałem zgodnie z instrukcją i teraz nie mogę uruchomić mojej witryny w trybie debugowania - mówi mi „... Nie można uruchomić projektu z typem wyjściowym biblioteki klas ...”
— Matt

2
U mnie zadziałało, mój główny problem był spowodowany tym, że nie zaktualizowałem wersji w web.config w podfolderze Widoki.
— connectedsoftware

13

Wypróbowałem wszystkie powyższe metody i problem nadal nie został rozwiązany, dopóki nie wstawiłem następujących wierszy w web.config bezpośrednio w folderze projektu.

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

3

Jeśli uzyskasz to za pomocą Route Debugger, musisz zaktualizować web.config w folderze Views w obszarze dla Route Debugger.


Ratownik. Dzięki.
— stóp pod

Czy możesz to wyjaśnić?
— Si8

1

W moim przypadku rozwiązałem to, aktualizując również plik Web.config na serwerze rzeczywistym, który VS zaktualizował po uaktualnieniu do MVC 5

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.