我创建了新的Project 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 \装配\ 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 \框架\ v4.0.30319 \临时 ASP.NET 文件\根\ 2505c7ee \ 369315c5 \组件\ 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 \网页的\ src \ System.Web.WebPages.Razor \ WebRazorHostFactory.cs 行:108
答案 0 :(得分:13)
此错误表示正在使用您自己的源代码副本编译应用程序的一部分作为参考,而在运行时它会在GAC中查找引用程序集。确保删除对GACed版本的MVC 3程序集的所有引用。这包括使用此公钥令牌的web.config文件中的许多内容:31bf3856ad364e35。
答案 1 :(得分:13)
我在升级我的应用时遇到了同样的问题,问题出在位于views目录中的web.config文件中,我盲目地从旧应用程序中复制了这个(我的坏)。
我的解决方案,创建一个新的MVC 4应用程序并将web.config从views目录复制到有问题的应用程序。
希望这有帮助
答案 2 :(得分:0)
虽然上面的帖子很有用。在我创建一个'虚拟''基本'MVC 4应用程序然后比较web.configs以找到任何更改之前,我无法工作。
答案 3 :(得分:0)
我修复此问题并不是删除对31bf3856ad364e35公钥的所有对程序集的引用,因为这涵盖了许多不相关的程序集。
相反,它应该通过更新所有配置引用来修复
请务必更新所有web.configs,包括View目录中的。