解决.VS2012+EF5.0开发的网站在window server2003上无法部署的问题
2014-04-09 11:30
239 查看
(一)前 言
最近一个月使用VS2012(默认框架是.net framework4.5),EF5.0开发了一套基础框架。开发完成之后,准备部署到window server 2003(公司的外网服务器)。却发现 window server 2003只支持.net framework 4.0和比 net framework 4.0 低的版本。
(二)解决方案简述
第一步:将.net framework 版本改为 4.5
第二步:更改EF5.0针对.net framework 的版本
(三) 错误重现及详细解决方案
1.将原始网站部署到window server 2003时的错误如下:
[b] 2. 更改所有项目的.net framework版本为 4.0[/b]
在程序集上右击->属性->应用程序->目标框架。如图所示:
[b]3.将webconfig 文件更改如下:[/b]
[b]4.重新运行网站 报错如下:[/b]
[b]5. 更改如下:[/b]
[b]6.运行网站[/b]
如果网站中没有使用EF的话,网站这时就可以运行成功了。但是由于我的网站中使用了针对于.net framework4.5 版本的EF5.0(EF5.0有两个版本,一个是针对.net framework4.5,一个是针对.net framework4.0)。由于我们降低了原网站的.net framework的版本(从4.5降低到了4.0)。所以我们应该使用针对.net framework4.0的EF5.0版本。但是由于我们原始网站的目标框架是4.5的,所以当我们在4.5框架上新建EF5.0时,默认使用的是针对.net framework4.5的EF5.0。所以网站会报如下错误:
[b] 7.此错误解决方案如下:[/b]
解决方法很简单,主要问题是:虽然各个类库项目的编译版本(更改后的版本)选择了Framework4.0,但是EF(原始项目目标框架)在引用时的EntityFramework.dll是针对4.5版本的.因此我们只要将引用EF的地方将引用更改成正确的dll即可.
我的VS2012安装在C盘,因此EntityFramework.dll的地方在C:/Program Files (x86)/Microsoft Web Tools/Packages/EntityFramework.5.0.0/lib/ ,里面有net40和net45,net40自然是在Framework4.0下使用的了.
如下图我们可以清楚的看到两个版本的差异:
[b]8.重新发布,部署到window server 2003上,报错如下:[/b]
报错原因是 EF5.0针对于.net framework 4.0版本的 Vseion=4.400,所以只需要更改Version即可。更改如图:
然后重新运行:
这个项目是本人做的一套权限控制的项目,准备写一个权限控制系列的文章。现截几张图看看。
最近一个月使用VS2012(默认框架是.net framework4.5),EF5.0开发了一套基础框架。开发完成之后,准备部署到window server 2003(公司的外网服务器)。却发现 window server 2003只支持.net framework 4.0和比 net framework 4.0 低的版本。
(二)解决方案简述
第一步:将.net framework 版本改为 4.5
第二步:更改EF5.0针对.net framework 的版本
(三) 错误重现及详细解决方案
1.将原始网站部署到window server 2003时的错误如下:
[b] 2. 更改所有项目的.net framework版本为 4.0[/b]
在程序集上右击->属性->应用程序->目标框架。如图所示:
[b]3.将webconfig 文件更改如下:[/b]
[b]4.重新运行网站 报错如下:[/b]
[b]5. 更改如下:[/b]
[b]6.运行网站[/b]
如果网站中没有使用EF的话,网站这时就可以运行成功了。但是由于我的网站中使用了针对于.net framework4.5 版本的EF5.0(EF5.0有两个版本,一个是针对.net framework4.5,一个是针对.net framework4.0)。由于我们降低了原网站的.net framework的版本(从4.5降低到了4.0)。所以我们应该使用针对.net framework4.0的EF5.0版本。但是由于我们原始网站的目标框架是4.5的,所以当我们在4.5框架上新建EF5.0时,默认使用的是针对.net framework4.5的EF5.0。所以网站会报如下错误:
错误:找不到方法:“Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean)”。
[b] 7.此错误解决方案如下:[/b]
解决方法很简单,主要问题是:虽然各个类库项目的编译版本(更改后的版本)选择了Framework4.0,但是EF(原始项目目标框架)在引用时的EntityFramework.dll是针对4.5版本的.因此我们只要将引用EF的地方将引用更改成正确的dll即可.
我的VS2012安装在C盘,因此EntityFramework.dll的地方在C:/Program Files (x86)/Microsoft Web Tools/Packages/EntityFramework.5.0.0/lib/ ,里面有net40和net45,net40自然是在Framework4.0下使用的了.
如下图我们可以清楚的看到两个版本的差异:
[b]8.重新发布,部署到window server 2003上,报错如下:[/b]
报错原因是 EF5.0针对于.net framework 4.0版本的 Vseion=4.400,所以只需要更改Version即可。更改如图:
然后重新运行:
这个项目是本人做的一套权限控制的项目,准备写一个权限控制系列的文章。现截几张图看看。
相关文章推荐
- 解决.VS2012+EF5.0开发的网站在window server2003上无法部署的问题(转载)
- 解决.VS2012+EF5.0开发的网站在window server2003上无法部署的问题
- 解决IIS部署asp/asp.net网站无法浏览并出现w3wp.exe调试问题
- 解决VS无法连接到已配置的开发web服务器或者部署在IIS上的web服务打不开的问题
- 如何部署Android开发环境以及解决部署中遇到的问题
- 2003 WDS结合小兵封装工具在不同硬件平台下部署XP(解决无法找到映像的问题)
- 【游戏开发备注之三】GameCenter登陆出现“无法识别此游戏”问题的两种解决方法
- 解决在android开发中ViewPager中Gallery无法滑动问题
- 网站无法访问的一些问题与解决
- ios开发实践之UIDatePicker(已对之前无法解决的问题做了解答)
- 【081】使用Nginx的官方Docker镜像,启动容器后无法显示自己网站页面,总显示Nginx官方默认页面的问题的解决方法
- Android开发中遇到的R文件无法生成以及adb无法启动问题的解决
- ionic开发——百度地图InfoWindow信息窗口上添加按钮,无法触发点击事件问题解决办法
- CCS+C6678LE开发记录18:解决EVM网口“DHCP配置无法获取IP”的问题
- WIN7上搭建Windows Phone 8 开发环境——VMware Workstation下Win8 “无法安装Hyper-V, 某个虚拟机监控程序正在运行”问题解决的办法
- Myeclipse版本10出现的无法点击部署按钮的问题解决
- android 开发中,经常遇到http://dl-ssl.google.com/ 无法访问的问题解决
- 解决在pagodabox上部署Kohana框架时无法写cache和logs的问题
- eclipse部署web项目无法将项目发布到本地的tomcat的问题解决
- Apache服务器上部署的网站乱码问题的解决办法