mvc4+entityFramework5 发布时遇到的纠结问题

最近在研究微软的新平台Vs2012,做好的系统在发布到服务器时纠结了。本地环境是win7的,一切运行正常,发布也很顺利。可是悲催的服务器还是windows 2003的,.net framewrok4.5已经不再支持2003系统了。找了好久终于找到解决办法。把现象和解决办法记录如下:

问题现象

在开发环境中(Win7 + MVC4 + EF5)系统能正常运行。

发布到Server2003后,访问系统报如下错误:

Method not found: 'Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean)'.

原因分析

在开发环境中(Win7)已安装.net framewrok4.5,  EF5使用的是与framework 4.5配套的版本。

但server2003不支持framework4.5

解决办法

1,把项目的Target framework设置为4.0

2,引入Ef5 4.0版本的dll,在packagesEntityFramework.5.0.0文件夹下

 通过Library Package Manager Console加载EF5.0后,会在工程目录下生成EntityFramework.5.0.0文件夹。

 它的lib下分别有net40,net45文件夹。

3.还要注意修改web.config中entityFramework的配置

<!--发布在2003上的时候需要做这个设置-->

    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />

    <!--发布在2003上的时候需要做这个设置-->

来源:http://hi.baidu.com/btc022003/item/e5b9a02a4b80fd50c38d599d

原文地址:https://www.cnblogs.com/fogwang/p/3505102.html