MVC项目迁移的一些配置问题(转)

本文转自:http://www.th7.cn/Program/net/201404/192102.shtml

随着VS版本和.NET MVC版本、EF的版本的不断更新,虽然很多功能随着版本的提升而更完善,但对于旧版本开发的软件就有点悲催了,或许很多开发者都遇到类似的问题!

最近有一个项目是用.NET MVC3+EXT.NET MVC开发的(当时使用本博客中Ext.Net MVC 配置(2)进行配置的),现在要移植到MVC4的环境中,就遇到了各种各样的问题,都快奔溃了,现在就来总结下:

1、ASP.NET Web Pages版本问题

调试后浏览器提示:

检测到 ASP.NET Web Pages 的冲突版本: 指定的版本为“1.0.0.0”,而 bin 中的版本为“2.0.0.0”。要继续操作,请删除应用程序 bin 目录中的文件,或者删除 web.config 中的版本指定。

解决:

配置项目下的Web.config

<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>

2、System.Web.WebPages.Razor.Configuration.HostSection版本问题

调试后浏览器提示:

[A]System.Web.WebPages.Razor.Configuration.HostSection
无法强制转换为 [B]System.Web.WebPages.Razor.Configuration.HostSection。类型 A
源自“System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35”(在上下文“Default”中的“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, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35”(在上下文“Default”中的“C:/Windows
/Microsoft.Net/assembly/GAC_MSIL/System.Web.WebPages.Razor
/v4.0_2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Razor.dll”位置处)。

解决:

配置view中的Web.config

<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />

3、System.Web.WebPages.Razor.Configuration.RazorPagesSection

版本问题

调试后浏览器提示:

[A]System.Web.WebPages.Razor.Configuration.RazorPagesSection
无法强制转换为 [B]System.Web.WebPages.Razor.Configuration.RazorPagesSection。类型
A 源自“System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35”(在上下文“Default”中的“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, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35”(在上下文“Default”中的“C:/Windows
/Microsoft.Net/assembly/GAC_MSIL/System.Web.WebPages.Razor
/v4.0_2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Razor.dll”位置处)。

解决:

配置view中的Web.config

<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />

4、System.Web.Mvc.MvcWebRazorHostFactory

版本问题

类型为“System.Web.Mvc.MvcWebRazorHostFactory”的表达式不能用于返回类型“System.Web.WebPages.Razor.WebRazorHostFactory”

解决:

配置项目下的Web.config

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<!--<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>-->
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>

</runtime>

注:蓝色的为原来的配置,加上红色这段就不会报上面的错误了!

以上的版本问题只要把红色部分的配置改为Bin文件中对应DLL的版本数就可以了。

以上的问题是mvc3的配置移植到mvc4时出现的错误,随着VS2013和mvc5的降临,可能会出现更多的问题,以后遇到了再做补充。

时间: 2024-10-12 19:12:27

MVC项目迁移的一些配置问题(转)的相关文章

58HouseSearch项目迁移到asp.net core

前言 58HouseSearch这个项目原本是基于ASP.NET MVC 4写的,开发环境是Windows+VS2015,发布平台是linux+mono+jexus,这样看来整个项目基本已经满足跨平台的需求. 这样一来,本来我是没什么动力去做迁移的,好好的东西闲着没事干才迁移呢. 不过,这不国庆了么?穷人不是在家穷游天下么?所以…真的有点闲着没事干了. 迁移可行性探讨 项目迁移前,我们还是先来讨论一下迁移可行性.为嘛要进行可行性探讨呢?原因是.NET CORE是一个跨平台的框架,和上一代的.NE

MyEclipse使用教程:项目迁移常见问题解答

什么是项目迁移,以及为什么需要它? 在MyEclipse 2013版本中,我们改变了大部分项目的元数据来扩展IDE的功能.为了使旧项目能在MyEclipse 2013或者更高版本中正常使用,必需将一些旧项目的元数据迁移到新的格式上,但并不是所有的项目都需要迁移. 除了项目元数据的迁移,当处理WebSphere平台下的项目时,在迁移的过程中允许在适用的情况下将运行库分配给你的项目,这将有助于改变项目的WebSphere版本.在迁移过程中遇到的错误,迁移向导会给出很好的帮助. 迁移的过程不是破坏性的

ASP.NET MVC应用迁移到ASP.NET Core及其异同简介

ASP.NET Core是微软新推出支持跨平台.高性能.开源的开发框架,相比起原有的ASP.NET来说,ASP.NET Core更适合开发现代应用程序,如跨平台.Dorker的支持.集成现代前端开发框架(如npm.bower.gulp等等).另外相比ASP.NET它的性能更好,还内置了依赖注入等功能对开发方式进行了优化.但它们之间也有很多相同或相似的地方,如都使用C#进行开发.都提供了MVC.Entity Framework.Identity等组件来快速构建应用程序. 本文将通过迁移一个简单的A

idea ssm项目迁移到另一台机器上时出现不能正常启动项目的解决方案

首先右下角提示关联spring文件,关联之,然后启动,发现项目无法启动,然后开始排错 首先从这个日志里发现了这么一条提示信息 然后百度了一下,答案都是说 web.xml 之类的 spring拦截器问题,但是项目之前的 web.xml 是一直没有问题的,spring的配置文件也都是没有问题的,然后继续排错 然后在 Artifacts 里面发现这个位置在出错时会提示内容大概为 RM 模块 web 资源丢失(英文提示),并且提示为红色,猜测可能是web目录出现了问题 果然,在idea配置中发现,项目迁

采用MiniProfiler监控EF与.NET MVC项目(Entity Framework 延伸系列1)

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 前言 Entity Framework 延伸系列目录 今天来说说EF与MVC项目的性能检测和监控 首先,先介绍一下今天我们使用的工具吧. MiniProfiler~ 这个东西的介绍如下: MVC MiniProfiler是Stack Overf

AngularJS2 + ASP.NET MVC项目

环境:VS2015, NodeJS:v 6.5, npm: v3.10, AngularJs 2 通过将ASP.NET MVC项目与Angualr 2官网上的quick start整合的过程中遇到些问题. 通过下面的若干配置最终向项目build成功.

maven Spring MVC项目

IntelliJ IDEA上创建maven Spring MVC项目 各软件版本 利用maven骨架建立一个webapp 建立相应的目录 配置Maven和SpringMVC 配置Maven的pom.xml 配置web.xml 配置contextConfigLocation文件 配置log4j.properties controller和view的编写 servlet容器的配置和运行 配置本地的tomcat服务器 配置maven插件 运行第一个Spring MVC应用 目前java开发主流的IDE

MVC项目,系统找不到指定的文件。(异常来自 HRESULT:0x80070002)

今天在用Visual Studio新建MVC项目的时候,遇到错误 系统找不到指定的文件.(异常来自 HRESULT:0x80070002) 解决办法:工具--> 扩展和更新 -->联机(Visual Studio库)--> NuGet Packget Manager for Visual Studio 2013 , 下载安装后 , 重启VS,OK (NuGet Packget, 还没有好好研究,总体说是方便开发,管理和更新第三方引用)

第12章 MVC项目综述

一段废话:看懂.把代码敲一遍是不能把知识真正的学会的,学会一个知识:1.总结知识特性,2.举一反三运用 ---------------------------------------------------------- 注:在部署服务器时,应将配置文件中<compilation debug="false" targetframwork="4.0"> .debug必须为"false" -------------------------