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