【问题标题】:[A]System.Web.WebPages.Razor.Configuration.HostSection cannot be cast to... web.config issue[A]System.Web.WebPages.Razor.Configuration.HostSection 无法转换为... web.config 问题
【发布时间】:2014-05-12 15:59:10
【问题描述】:

我收到以下错误:

[A]System.Web.WebPages.Razor.Configuration.HostSection 无法转换 到 [B]System.Web.WebPages.Razor.Configuration.HostSection。 A型 源自'System.Web.WebPages.Razor,版本=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 package restore。我也更新了我的包(使用更新包),所以其中一个可能与这个问题有关。

【问题讨论】:

    标签: c# web-config nuget nuget-package nuget-package-restore


    【解决方案1】:

    我正在使用 VS2013,MVC 5.2.2.0,Web Api 2。我刚刚将以下部分的所有版本从 2.0.0.0 更改为 3.0.0.0 Web.config 位于我项目的 View 文件夹中。

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

    问题就解决了。 宾果!!

    【讨论】:

    • 这为我完成了工作。谢谢!
    • 这为我解决了。我正在将一个网络表单应用程序转换为 MVC5。
    • @guneysus,如果没有手动编辑,你会如何做相当于 Kuntal 的答案?
    • @twm 一般Update-Package 也编辑web.config
    • 这就是我如此喜欢的原因!
    【解决方案2】:

    在这个问题上加两分钱。

    我发现这个错误的原因是 Views 文件夹 web.config 引用 System.Web.WebPages.Razor, Version=2.0.0.0 而其他所有东西都在使用 3.0.0.0

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

    【讨论】:

    • 它更精确!视图文件夹中的 web.config。
    【解决方案3】:

    此错误的原因是 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>
    

    有关升级到 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

    【讨论】:

    • 这听起来不像是一个修复程序,而是解决了我的问题。有些项目可能只依赖于 mvc4
    • 特别是,此错误的修复似乎在“更新 Views 文件夹下的 web.config 文件”部分中。似乎从 MVC4 更新 -> 使用 NuGet 的 MVC5 不会自动更新 Views/Web.config 中的版本号。
    • 感谢您的链接!如果 NuGet 更新至少可以显示指向该页面的链接,那就太好了...
    • 我按照指南进行操作,但现在我无法在调试模式下运行我的网站 - 告诉我“...无法启动输出类型为 Class Library 的项目...”
    • 为我工作,我的主要问题是因为我没有更新 Views 子文件夹中 web.config 中的版本。
    【解决方案4】:

    尝试了以上所有方法,直到我在项目文件夹下的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>
    

    【讨论】:

      【解决方案5】:

      如果您使用 Route Debugger 获得此信息,那么您需要更新 Route Debugger 区域下 Views 文件夹中的 web.config。

      【讨论】:

      • 救命稻草。谢谢。
      • 你能澄清一下吗?
      【解决方案6】:

      在我的情况下,我还通过更新实时服务器上的 Web.config 解决了这个问题,VS 在升级到 MVC 5 时更新了该服务器

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-30
        • 1970-01-01
        • 1970-01-01
        • 2013-09-01
        • 2020-11-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多