[A] System.Web.WebPages.Razor.Configuration.HostSection无法转换为... web.config问题

Max*_*nck 158 c# web-config nuget nuget-package nuget-package-restore

我收到以下错误:

[A] System.Web.WebPages.Razor.Configuration.HostSection无法强制转换为[B] System.Web.WebPages.Razor.Configuration.HostSection.类型A源自'System.Web.WebPages.Razor,Version = 2.0.0.0,Culture = neutral,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,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35',位于'默认'位置'C:\ Users\MyName\AppData\Local\Temp\Temporary ASP.NET Files\root\63e7ff36\a1cb775d\assembly\dl3\8f568c18\9b7ddacf_d04dcf01\System.Web.WebPages.Razor.dll'.

我已经搜索了stackoverflow的类似问题,我使用了他们的解决方案,但它似乎没有解决我遇到的问题.

它突然发生,我只是按下清洁解决方案,这个错误弹出.我也开始在解决方案上使用nuget包恢复.我也更新了我的软件包(使用Update-package),因此其中一个可能与此问题有关.

Kun*_*osh 271

我使用VS2013,MVC 5.2.2.0,网络API 2.我刚刚更改的所有版本从2.0.0.03.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>
Run Code Online (Sandbox Code Playgroud)

问题就解决了.答对了 !!

  • 这对我来说很有帮助.谢谢! (7认同)

Nic*_*ist 101

只是加上我的两分钱来解决这个问题.

我发现这个错误的原因是,当其他一切都在使用时,Views文件夹 web.config正在引用 System.Web.WebPages.Razor, Version=2.0.0.03.0.0.0

似乎nuget-package升级没有考虑到这个文件夹.


Max*_*nck 54

此错误的原因是Views文件夹中的web.config引用System.Web.WebPages.Razor,Version = 2.0.0.0而不是3.0.0.0.

通常,这可能发生在nuget-package升级之后,该升级不考虑此文件夹.

更新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>
Run Code Online (Sandbox Code Playgroud)

有关升级到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-和网络API-2

  • 特别是,看起来这个错误的修复是在"更新Views文件夹下的web.config文件"部分.似乎从MVC4更新 - >使用NuGet的MVC5不会自动更新Views/Web.config中的版本号. (12认同)
  • 它听起来不像是一个修复而是为我工作.有些项目可能仅依赖于mvc4 (5认同)
  • 为我工作,我的主要问题是因为我没有更新Views子文件夹中web.config中的版本. (2认同)

Jia*_*ang 11

尝试了上面的所有方法,直到我直接在项目文件夹下的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>
Run Code Online (Sandbox Code Playgroud)