[A] System.Web.WebPages.Razor.Configuration.HostSection не може бути передано… випуску web.config


158

Я отримую таку помилку:

[A] System.Web.WebPages.Razor.Configuration.HostSection не може бути передано до [B] System.Web.WebPages.Razor.Configuration.HostSection. Тип A бере початок від 'System.Web.WebPages.Razor, версія = 2.0.0.0, культура = нейтральна, PublicKeyToken = 31bf3856ad364e35' у контексті 'за замовчуванням' у місці розташування 'C: \ WINDOWS \ Microsoft.Net \ Assembly \ GAC_MSIL \ System .Web.WebPages.Razor \ v4.0_2.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll '. Тип B бере початок від "System.Web.WebPages.Razor, версія = 3.0.0.0, культура = нейтральна, PublicKeyToken = 31bf3856ad364e35" у контексті "За замовчуванням" у розташуванні "C: \ Users \ MyName \ AppData \ Local \ Temp \ Temporary Файли ASP.NET \ root \ 63e7ff36 \ a1cb775d \ Assembly \ dl3 \ 8f568c18 \ 9b7ddacf_d04dcf01 \ System.Web.WebPages.Razor.dll '.

Я шукав stackoverflow для подібних проблем, і я використав їх рішення, але це, здається, не вирішило проблему, яку я відчуваю.

Це сталося раптом, я просто натиснув чистий розчин, і ця помилка вискочила. Я також почав використовувати відновлення пакунків для вирішення проблем. Я також оновив свої пакунки (використовуючи Update-package), так що один із них може мати щось спільне з цією проблемою.

Відповіді:


274

Я використовую VS2013, MVC 5.2.2.0, Web Api 2. Щойно я змінив усі версії з 2.0.0.0 на 3.0.0.0 наступного розділу Web.config, що знаходиться всередині папки Перегляд мого проекту.

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

І проблема вирішується. БІНГО !!


7
Це зробило роботу для мене. Дякую!
Джозеф Вудвард

1
Це вирішило це для мене. Я перетворюю додаток для веб-форм у MVC5.
Рей

1
@guneysus, як би ти зробив еквівалент відповіді Кунтала без редагування вручну?
twm

@twm Як правило, Update-Packageредагує такожweb.config
guneysus

Ось чому Я ЛЮБИТЬ ТАК!
Homunculus Reticulli

102

Просто додаю два мої центи до цього питання.

Я виявив, що причиною цієї помилки для мене було те, що папки Views web.config посилалися на те, System.Web.WebPages.Razor, Version=2.0.0.0коли все інше використовується3.0.0.0

Здається, оновлення пакету нюгетів якось не враховувало цю папку.


1
його точніше! web.config у папці перегляду.
Rohit Verma

58

Причиною цієї помилки є web.config у папці Views, що посилається на System.Web.WebPages.Razor, Версія = 2.0.0.0 замість 3.0.0.0.

Зазвичай це може статися після оновлення пакунків, що не враховує цю папку.

Оновіть 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>

для отримання додаткової інформації про оновлення до 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-і-web-api-2


5
це не звучить як виправлення, а не обходить мене. деякі проекти можуть бути в залежності від mvc4 тільки
Стенлі

12
Зокрема, виглядає виправлення цієї помилки в розділі "Оновити файли web.config у папці Перегляди". Здається, оновлення MVC4 -> MVC5 з NuGet не автоматично оновлює номери версій у Views / Web.config.
Тайлер

Дякуємо за посилання! Було б добре, якби оновлення NuGet могло хоча б показати посилання на цю сторінку ...
Jedidja

Я дотримувався керівництва, і тепер я не можу запустити свій сайт у режимі налагодження - каже мені "... Не можна запустити проект із типом виводу бібліотеки класів ..."
Метт,

2
Робота для мене моя основна проблема була викликана тим, що я не оновлював версії в web.config у підпапці Views.
підключено програмне забезпечення

13

Перепробував усі вищевказані методи, і проблема все ще не була вирішена, поки я не вставив наступні рядки в web.config безпосередньо під папку проекту.

  <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

Якщо ви отримаєте це за допомогою налагоджувача маршруту, то вам потрібно оновити web.config у папці «Вид» у розділі «Область для відладчика маршруту».


Рятувальник. Дякую.
6

Чи можете ви уточнити це, будь ласка.
Si8

1

У моєму випадку я вирішив це, також оновивши Web.config на живому сервері, який VS оновив після оновлення до MVC 5

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.