Сайт перестает работать в 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
)
Ответ 4
Ian-решение работало в одном проекте, но для других мне нужна более полная информация в Как перейти на MVC 5 и Web API 2
Ответ 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>