Сайт перестает работать в asp.net System.Web.WebPages.Razor.Configuration.HostSection не может быть передан в

У меня проблема на сервере

[A] System.Web.WebPages.Razor.Configuration.HostSection не может быть добавлено к [B] System.Web.WebPages.Razor.Configuration.HostSection. Введите происходит от "System.Web.WebPages.Razor, Version = 2.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 'в контексте" По умолчанию "в месте" C:\Windows\Microsoft.Net\сборка\GAC_MSIL\System.Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll. Тип B берется из "System.Web.WebPages.Razor, Version = 1.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 'в контексте" По умолчанию" в месте. 'C:\Windows\Microsoft.Net\сборка\GAC_MSIL\System.Web.WebPages.Razor\v4.0_1.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'

Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.

Сведения об исключении: System.InvalidCastException: [A] System.Web.WebPages.Razor.Configuration.HostSection не может быть добавлено к [B] System.Web.WebPages.Razor.Configuration.HostSection. Введите происходит от "System.Web.WebPages.Razor, Version = 2.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 'в контексте" По умолчанию "в месте" C:\Windows\Microsoft.Net\сборка\GAC_MSIL\System.Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll. Тип B берется из "System.Web.WebPages.Razor, Version = 1.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 'в контексте" По умолчанию" в месте. 'C:\Windows\Microsoft.Net\сборка\GAC_MSIL\System.Web.WebPages.Razor\v4.0_1.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'

Ошибка источника:

Я установил MVC 3 на Serer и на свой компьютер. Я попытался заменить его на 15-дневную кодовую базу, но та же проблема существует.

теперь я хочу его решить. Кто-нибудь знает, как я могу это исправить.

Ответ 1

В корневой Web.config убедитесь, что assemblyBinding содержит правильную версию для сборки "System.Web.WebPages.Razor" и "System.Web.Mvc". Проверьте их фактическое существование, а также тег сборки "System.Web.WebPages.Razor" отсутствует, вызывая ошибку. У меня были версии сборки версии 3.0 и 5.0 соответственно во время написания этой статьи с полными обновлениями NuGet. Код должен выглядеть примерно так. PublicKeyToken останется неизменным между версиями. Ура!

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <!--some more bidings-->
  <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>

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
  </dependentAssembly>
<!--some more bidings-->
</assemblyBinding>

Ответ 2

Мой случай обновлялся с mvc4 до mvc5.

Я убедился, что мои ссылки синхронизированы (с недавно созданным приложением mvc5), обновил файл web.config, и он все еще не работает. Он, наконец, работал, когда я изменил свой файл web.config(ВНУТР. ВИДОВ-каталог) из:

<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
  <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>

Для этого:

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

ПОМНИТЕ: остановите iis (экспресс или нативный), очистите решение, выполните и запустите.

Ответ 3

На всякий случай ian ответа было недостаточно (и сборки правильные, но кастинг по-прежнему не так), скорее всего, вы не обновили <configSections>, чтобы отразить новую сборку. убедитесь, что часть сборки также ссылается на версию 3.0 библиотеки System.Web.WebPages.Razor. например.

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

(Обратите внимание, что теперь все ссылки version=3.0.0)

Ответ 5

Эта проблема очень распространена, когда вы разрабатываете для MVC 4, а затем потихоньку устанавливаете пакет, который доступен в более новой версии, чтобы он разбивал все приложение.

Единственным решением этой проблемы является обновление всего приложения до более нового или установка старого пакета, совместимого с вашим приложением

Ответ 6

Проблема:

[A] System.Web.WebPages.Razor.Configuration.HostSection не может быть добавлено к [B] System.Web.WebPages.Razor.Configuration.HostSection. Введите происходит от "System.Web.WebPages.Razor, Version = 2.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 'в контексте" По умолчанию "в месте" C:\Windows\Microsoft.Net\сборка\GAC_MSIL\System.Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll. Тип B берется из "System.Web.WebPages.Razor, Version = 3.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 'в контексте" По умолчанию "в месте 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Временная ASP.NET Файлы\rbs.ceds.todomvcdemo\73d0b7c7\46e3986d\сборка\DL3\21020800\101279fc_da94cf01\System.Web.WebPages.Razor.dll".

Идентификация:

Ошибка с файлом конфигурации, то есть web.config вашего проекта.

Здесь вы обнаружите, что версия Razor установлена ​​в 2.0.0.0, где, как и в вашем проекте, версия 2.0.0.0 недоступна.

            

Решение:

Это просто, просто измените версию с 2.0.0.0 на 3.0.0.0, и она будет делать магию.

тип = "System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version = 3.0.0.0 TYPE =" System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version = 3.0.0.0

Вам не нужно переназначать, так как это усложнит ситуацию.

Ответ 7

Я нашел проблему и решение.

1 Я нацелил свой код на 4.0, а затем загрузил код, и он сработал. Перед этим я также обновляю свой код до asp.net MVC 4.

теперь он работает:)

Ответ 8

Откройте расположение двух файлов dll в вашей системе, скопируйте одну из DLL в местоположение вашего файла в другую. и попробуйте запустить проект.

Ответ 9

Другой способ исправить это, без необходимости обновлять ссылки, - это

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Pages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.2.0.0" newVersion="1.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>