【问题标题】:What is this error in ASP.NET MVC 3 RTM Project?ASP.NET MVC 3 RTM 项目中的这个错误是什么?
【发布时间】:2011-01-24 11:46:17
【问题描述】:

我创建新项目 ASP.NET MVC 3 RTM 并替换参考 使用 ASP.NET MVC 3 源代码

但是当我再次运行项目时,得到这个异常:

[A]System.Web.WebPages.Razor.Configuration.HostSection 不能转换为 [B]System.Web.WebPages.Razor.Configuration.HostSection。 A型起源于 'System.Web.WebPages.Razor, 版本=1.0.0.0,文化=中性, PublicKeyToken=31bf3856ad364e35' 在 位置的上下文“默认” 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_1.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'。 B型起源于 'System.Web.WebPages.Razor, 版本=1.0.0.0,文化=中性, PublicKeyToken=null' 在上下文中 位置的“默认” 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\2505c7ee\369315c5\assembly\dl3\f7bae428\d03eeed8_85bbcb01\System.Web.WebPages.Razor.DLL'。

描述:未处理的异常 在执行过程中发生 当前的网络请求。请查看 堆栈跟踪以获取有关的更多信息 错误及其起源 代码。

来源错误:

Line 106:        internal static RazorWebSectionGroup GetRazorSection(string virtualPath) {
Line 107:            // Get the individual sections (we can only use GetSection in medium trust) and then reconstruct the section group
Line 108:            return new RazorWebSectionGroup() {
Line 109:                Host = (HostSection)WebConfigurationManager.GetSection(HostSection.SectionName, virtualPath),
Line 110:                Pages = (RazorPagesSection)WebConfigurationManager.GetSection(RazorPagesSection.SectionName, virtualPath)

源文件: E:\GreenTour\webpages\src\System.Web.WebPages.Razor\WebRazorHostFactory.cs 线路:108

【问题讨论】:

    标签: asp.net-mvc-3


    【解决方案1】:

    此错误意味着您的应用程序的一部分正在使用您自己的源代码副本作为参考进行编译,而在运行时它在 GAC 中查找参考程序集。确保删除对 MVC 3 程序集的 GACed 版本的所有引用。这包括 web.config 文件中使用此公钥令牌的许多内容:31bf3856ad364e35。

    【讨论】:

      【解决方案2】:

      我在升级我的应用程序时遇到了同样的问题,问题出在视图目录中的 web.config 文件中,我盲目地从旧应用程序中复制了它(我的错误)。

      我的解决方案,创建一个新的 MVC 4 应用并将 web.config 从视图目录复制到有问题的应用。

      希望对你有帮助

      【讨论】:

      • 谢谢 - 您的评论“位于视图目录中的 web.config 文件”只是给了我一个“啊哈!”时刻。
      • 这个。我忘记了 Views 目录(和子目录)中还有其他 web.config 文件。
      • 完全忘记了其他 web.configs。我能够只更改版本号,而不是创建一个新应用程序并复制它。但是YMMV。
      【解决方案3】:

      虽然上面的线程很有用。在我创建一个“虚拟”“基本”MVC 4 应用程序然后比较 web.configs 以找到任何更改之前,我无法让事情正常工作。

      【讨论】:

        【解决方案4】:

        我不是通过删除对具有 31bf3856ad364e35 公钥的程序集的所有引用来解决此问题的,因为这涵盖了许多不相关的程序集。

        应该通过更新所有配置引用来修复它

        • System.Web.Mvc 到 4
        • System.Web.WebPages 到 2
        • System.Web.WebPages.Razor 到 2

        确保更新所有 web.config,包括 View 目录中的那些。

        【讨论】:

          猜你喜欢
          • 2011-06-16
          • 1970-01-01
          • 1970-01-01
          • 2013-12-29
          • 1970-01-01
          • 1970-01-01
          • 2012-03-02
          • 2011-11-17
          • 1970-01-01
          相关资源
          最近更新 更多