【问题标题】:[A]System.Web.WebPages.Razor.Configuration.HostSection cannot be cast to [B]System.Web.WebPages.Razor.Configuration.HostSection [duplicate][A]System.Web.WebPages.Razor.Configuration.HostSection cannot be cast to [B]System.Web.WebPages.Razor.Configuration.HostSection [duplicate]
【发布时间】:2014-12-02 05:16:23
【问题描述】:

使用 nuget 将 mvc 框架更新到 5.2.2.0 后出现此错误

[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:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\vs\36d3424f\d8d844c3\assembly\dl3\a0b68557\24516c31_ea0dd001\System.Web.WebPages.Razor.dll'。

在 web.config 上

<appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
  ...
  </appSettings>

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
              <probing privatePath="Plugins/bin/" />
              <dependentAssembly>
                <assemblyIdentity name="FluentValidation" publicKeyToken="a82054b837897c66" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-3.4.0.0" newVersion="3.4.0.0" />
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-3.5.0.0" newVersion="3.5.0.0" />
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="System.Web.Http.WebHost" publicKeyToken="31bf3856ad364e35" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
                <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
                <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
                <bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
              </dependentAssembly>
            </assemblyBinding>
</runtime>

【问题讨论】:

  • 您可能正在查看错误的 web.config。您的视图文件夹中还有一个 web.config,这很可能是您错误的来源。
  • 谢谢,我搞定了。

标签: c# asp.net asp.net-mvc


【解决方案1】:

我们有同样的问题。 通过应用两个修复解决: 1) 有 2 个 web.config 文件。需要在 Root 中更改它并查看 web.config 文件。 2)需要检查appsettings并检查下面的网页标签。

【讨论】:

    【解决方案2】:

    更详细地跟进 Ashish 的回答

    查看 web.config(不是根 web.config)的 Views 文件夹,并将 2.0.0.0 更改为 3.0.0.0,如下所示:

    ...
    <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>
         ...
    </configSections>
    ...
    

    您可能还需要删除(在 system.web.webPages.razor \ pages 命名空间内):

    <add namespace="System.Web.Optimization"/>
    

    ...因为 nuget 包也无缘无故地把它放回去了。

    【讨论】:

      【解决方案3】:

      我遇到了这个错误,唯一能解决的就是安装 Microsoft .NET Framework 4.5.2(离线安装程序) https://www.microsoft.com/en-us/download/details.aspx?id=42642

      我之前还安装了 SQL Server 2014 客户端工具,通过安装更新​​的 msxml 6.0 版本,这也可能产生了积极影响。

      我的错误信息是:

      [A]xx.xxxx.ClassUserDS 不能转换为 [B]xx.xxxx.ClassUserDS。类型 A 源自 'yyyyyy, Version=3.0.5617.31787, Culture=neutral, PublicKeyToken=657d68e01eb7c911' 在位置 'C:\Users\xxxxx\Appdata\Local\assembly\dl3\QQ3VBMNC.EO1\VYVECOB7 的上下文'Default'中.H5J\2b6c89d2\51158eea_9892d001\yyyyyy.DLL'。类型 B 源自 'yyyyyy, Version=3.0.5617.31787' 在位置 'C:\Users\xxxxx\Appdata\Local\Microsoft\InfoPath\FormCache4\30083E69.D18\cd264661b1055c58$b04f2786908cb791\yyyyyy.dll 的上下文 'LoadNeither'

      我尝试在 regedit HKCU\Software\Microsoft\Fusion\ 中查看所有我可以看到错误消息中提到的路径,但很有趣。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-05-12
        • 2018-09-29
        • 2021-11-12
        • 1970-01-01
        • 2022-12-04
        • 2023-02-08
        • 1970-01-01
        相关资源
        最近更新 更多