解决.VS2012+EF5.0开发的网站在window server2003上无法部署的问题
(一)前 言
最近一个月使用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时的错误如下:

2. 更改所有项目的.net framework版本为 4.0
在程序集上右击->属性->应用程序->目标框架。如图所示:

3.将webconfig 文件更改如下:

4.重新运行网站 报错如下:

5. 更改如下:

6.运行网站
如果网站中没有使用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)”。

7.此错误解决方案如下:
解决方法很简单,主要问题是:虽然各个类库项目的编译版本(更改后的版本)选择了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下使用的了.
如下图我们可以清楚的看到两个版本的差异:

8.重新发布,部署到window server 2003上,报错如下:

报错原因是 EF5.0针对于.net framework 4.0版本的 Vseion=4.400,所以只需要更改Version即可。更改如图:

然后重新运行:

这个项目是本人做的一套权限控制的项目,准备写一个权限控制系列的文章。现截几张图看看。





解决.VS2012+EF5.0开发的网站在window server2003上无法部署的问题的更多相关文章
- 解决.VS2012+EF5.0开发的网站在window server2003上无法部署的问题(转载)
转载:http://www.cnblogs.com/eggTwo/p/3653825.html (一)前 言 ...
- Spring Boot框架开发的Java项目在CentOS7上的部署
需求:上级拿来一份Spring Boot框架开发的Java项目代码让我在服务器上运行起来,只说了一句该框架是自带了Tomcat(不用重新安装Tomcat),一份代码下有两个项目(一个管理端项目,一个用 ...
- IIS6.0服务器搭建网站无法访问解决方法
IIS6.0服务器搭建网站无法访问解决方法 IIS6.0服务器搭建网站无法访问解决方法很多朋友在用IIS6架网站的时候遇到不少问题,而这些问题有些在过去的IIS5里面就遇到过,有些是新出来的, ...
- SharePoint Server 2013开发之旅(二):使用在线的开发人员网站进行SharePoint App开发
上一篇我已经介绍了新版本的SharePoint Server提供了四种主要的开发场景,其中一个全新的App开发模型让我们眼前一亮.这一篇我将介绍如何在线进行SharePoint App开发. 谈到Sh ...
- (4)Linux(ubuntu)下配置Opencv3.1.0开发环境的详细步骤
Ubuntu下配置opencv3.1.0开发环境 1.最近工作上用到在Ubuntu下基于QT和opencv库开发应用软件(计算机视觉处理方面),特把opencv的配置过程详细记录,以供分享 2.步骤说 ...
- 解决项目中EF5.0升级到EF6.0无法安装包的方法
今天在vs2012上新建了一个mvc4的项目,mvc4中默认的Entity Framework是5.0的版本,如下所示: 或者:,但是项目中有些要用到EF6.0的相关方法,用EF5.0实在繁琐,于是在 ...
- win7 vs2012+wdk8.0 搭建wdf驱动开发环境
开发环境搭建:系统:win7 x64工具:vs2012 + WDK8.0插件:wdfcoinstaller.msi(1)先安装vs2012,再安装wdk8.0,这样在打开vs2012时可以创建wind ...
- 【Qt开发】解决Qt5.7.0中文显示乱码的问题
[Qt开发]解决Qt5.7.0中文显示乱码的问题 亲测可用: 乱码主要是编码格式的问题,这里可以通过Edit菜单中选择当前文档的编码方式,选择按照UTF-8格式保存,然后输入对应的中文,保存,然后运行 ...
- vs2012+wdk8.0 搭建wdf驱动开发环境
开发环境搭建: 系统:win7 x64 工具:vs2012 + WDK8.0 插件:wdfcoinstaller.msi (1)先安装vs2012,再安装wdk8.0,这样在打开vs2012时可以创建 ...
随机推荐
- 全站HTTPs,没那么简单
“全站 HTTPs”俨然成了目前的热门话题,很多网站都在摩拳擦掌要实行全站 HTTPs.凑巧,我们(沪江)也在推行这个计划. 一开始大家想得都很简单,把证书购买了.配好了,相应的路径改一改,就没有问题 ...
- mybatis 中#{}与${}的区别
1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111&qu ...
- 《java JDK7 学习笔记》课后练习题3
1.如果有以下的程序代码:int number;System.out.println(number);以下描述何者正确?A.执行时显示0B.执行时显示随机数字C.执行时出现错误D.编译失败 2.如果有 ...
- windows 远程桌面研究
最近因为一个监控相关的项目,深入研究了一下 windows 的 远程桌面的相关知识. 1. 如何让关闭了远程桌面连接的用户,对应的 session 立即退出 windows server. 大家使用 ...
- SQL Server调优系列基础篇(常用运算符总结——三种物理连接方式剖析)
前言 上一篇我们介绍了如何查看查询计划,本篇将介绍在我们查看的查询计划时的分析技巧,以及几种我们常用的运算符优化技巧,同样侧重基础知识的掌握. 通过本篇可以了解我们平常所写的T-SQL语句,在SQL ...
- Windows环境下载与安装JBOSS服务器的详细图文教程
一.JDK的安装 首先安装JDK,配置环境变量(PATH,CLASSPATH,JAVA_HOME). 可以参照:Windows环境下JDK安装与环境变量配置 二.Jboss的介绍 JBOSS是EJB的 ...
- android setLayoutParams 问题,出错
LinearLayout layt = (LinearLayout) rootView.findViewById(R.id.llt_2); FrameLayout.LayoutParams layou ...
- andriod fragment调用Activity函数方法
(1)新增一个activity public MainActivity getMainActivity(); } (2)在MainActivity 的Java文件中增加 getMainActivit公 ...
- C#基础---事件的使用
一:什么是事件 事件是可以被控件识别的操作,如按下确定按钮,选择某个单选按钮或者复选框.每一种控件有自己可以识别的事件,如窗体的加载.单击.双击等事件,编辑框(文本框)的文本改变事件,等等.事 ...
- cuda多线程间通信
#include "cuda_runtime.h" #include "device_launch_parameters.h" #include <std ...