[部署]MVC4.0+EF5.0+ODT+ORACLE相关注意事项
摘要
项目开发工具:VS2012旗舰版(.NetFrameWork4.5.1),WIN7 64bit,Oracle 11g
服务器环境:Windows Server2008 R2 64bit,.NetFrameWork4.0,Oracle 11g
项目开发环境:.NetFrameWork4.5,MVC4.0,Entity FrameWork5.0,ODT
因为开发环境跟服务器环境不同,会有一些麻烦。
以下要说明的就是在项目开发完成,发布到服务器上时,遇到的一些问题,以及解决方案。
正文
1.首先,专业的.Net开发人员当然是会将服务器与开发PC之间的.NetFrameWork版本统一。
-为了给服务器装上.NetFrameWork4.5.1,Windows Server 2008 R2还需要打上SP1的补丁包。
-这里要注意一下,.NetFrameWork4.5.1之后,还没有完,需要注册一下才能用,
注册步骤:
1).开始->附件->命令提示符,用管理员身份打开(也可以打CMD命令)
2).输入: cd C:\Windows\Microsoft.NET\Framework
3).回车
4).aspnet_regiis -i
5).回车
6).就会看到如下画面

2.图片中我们可以看到,项目在开发环境中运行是没有问题的,数据库中的数据(186商店)被查询出来
3.网站发布,步骤可以在度娘里找,很多,这里就不加以说明。
-得到发布版
4.将发布版移植到服务器中,并且进行IIS配置,得到下图结果。
5.发布成功后访问该网站
-就会发现我们第一个问题了,HTTP 错误 403.14 - Forbidden
这是由于MVC项目是通过路由去访问控制器,再从控制器指定返回哪一个视图的过程,
所以没有Index.html或Default.aspx等页面文件,这里跟找不到"启动页面"错误相似。
解决方法:在Web.config文件的<system.webServer>节点下加一行<modules runAllManagedModulesForAllRequests="ture" />
6.再访问网站,
-我们就又会遇到一个问题,问题内容 Unable to find the requested .Net Framework Data Provider. It may not be installed.
解决方法:在C://Windows//Microsoft.NET//Framework64//v4.0.30319//Config//machine.config文件中的<System.data>节点下需要加上一下代码,并且将原来的<DbProviderFactories />节点删掉
<DbProviderFactories>
<add name="Odbc Data Provider" invariant="System.Data.Odbc" description=".Net Framework Data Provider for Odbc" type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="OleDb Data Provider" invariant="System.Data.OleDb" description=".Net Framework Data Provider for OleDb" type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="OracleClient Data Provider" invariant="System.Data.OracleClient" description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/></DbProviderFactories>
替换后效果如下

7.修改后访问网站
-我们还会遇到如下错误

跟上面的同一个错误,难道问题没解决吗?
其实不是,还差一步。
打开Internet 信息服务(IIS)管理器,在应用程序中找到你发布的网站,右键,高级设置,将启用32位应用程序设置成True,点击确定。

8.再一次访问网站,Oh My God,居然还报同样的错误,这是要疯的节奏吗,但身为资深的软件工程师,此时要学会淡定。

在网上找了各种资料,找了很多种方法,最后发现,我开发用的PC,在我使用前,它的前使用者给它装了ODT。
但是服务器上是没有ODT的,哎....,在给服务器装上ODT后,再次访问网站就能正常访问了。
ODT第一次用,是EF访问Oracle的一种工具,好像是伪Code First的一种.....

总结:
经过1天的奋斗,终于将网站发布到服务器上。
关于IIS发布的错误,个人感觉网上的解决方法很多,但由于遇到的问题范围特别广,不一定能解决问题,
个人感觉,有的时候排错也是要"跟着感觉走!!!"
[部署]MVC4.0+EF5.0+ODT+ORACLE相关注意事项的更多相关文章
- 解决.VS2012+EF5.0开发的网站在window server2003上无法部署的问题
(一)前 言 最近一个月使用VS2012(默认框架是.net f ...
- 解决.VS2012+EF5.0开发的网站在window server2003上无法部署的问题(转载)
转载:http://www.cnblogs.com/eggTwo/p/3653825.html (一)前 言 ...
- Oracle 11.2.0.4.0 Dataguard部署和日常维护(3)-Datauard监控篇
1. v$database 查看当前数据库的角色和保护模式 primary库查看 column NAME format a10 column PROTECTION_MODE format a2 ...
- Oracle 11.2.0.4.0 Dataguard部署和日常维护(2)-Datauard部署篇
1. primary库设置dataguard相关参数 1.1. 强制primay库在任何状态下必须记录日志 SYS@userdata>select FORCE_LOGGING from v$ ...
- 基于MVC4+EF5.0+Ajax+Json+CSS3的简单注册页面(get&post)
使用mvc4可以很快速的创建页面,但封装的过多,难免会有些性能上的问题.所以基于此,通过使用简单的手写html,加ajax,json来创建一个注册页面,会比较干净,简洁. 本项目的环境是MVC4+EF ...
- Oracle 11.2.0.4.0 Dataguard部署和日常维护(1)-数据库安装篇
本次测试环境 系统版本 CentOS release 6.8 主机名 ec2t-userdata-01 ec2t-userdata-01 IP地址 10.189.102.118 10.189.100. ...
- 实体类的枚举属性--原来支持枚举类型这么简单,没有EF5.0也可以
通常,我们都是在业务层和界面层使用枚举类型,这能够为我们编程带来便利,但在数据访问层,不使用枚举类型,因为很多数据库都不支持,比如我们现在用的SqlServer2008就不支持枚举类型的列,用的时候也 ...
- 解决项目中EF5.0升级到EF6.0无法安装包的方法
今天在vs2012上新建了一个mvc4的项目,mvc4中默认的Entity Framework是5.0的版本,如下所示: 或者:,但是项目中有些要用到EF6.0的相关方法,用EF5.0实在繁琐,于是在 ...
- CentOS7+ApacheServer2.4+MariaDB10.0+PHP7.0+禅道项目管理软件8.0环境部署
CentOS7+ApacheServer2.4+MariaDB10.0+PHP7.0+禅道项目管理软件8.0环境部署 by:授客 QQ:1033553122 目录 一. 二. 三. 四. 五. 六. ...
随机推荐
- vim正则表达式(转)
Vim中的正则表达式功能很强大,如果能自由运用,则可以完成很多难以想象的操作. 如果你比较熟悉Perl的正规表达式,可以直接参照与Perl正则表达式的区别一节. 一.使用正则表达式的命令 使用正则表达 ...
- C#winform调用外部程序,等待外部程序执行完毕才执行下面代码
1.简单调用外部程序文件(exe文件,批处理等),只需下面一行代码即可 System.Diagnostics.Process.Start(“应用程序文件全路径”); 2.如果要等待调用外部程序执行完毕 ...
- mac显示所有文件、不产生.DS_Store文件
1.mac的Finder显示所有文件: defaults write com.apple.finder AppleShowAllFiles -bool true killall Finder 2.ma ...
- MYSQL中创建存储过程实现向表中循环插入数据
首先在test数据库中先创建一个表test: CREATE TABLE test( ID INT PRIMARY KEY AUTO_INCREMENT ,test_name VARCHAR(20),t ...
- Servlet 生命周期、工作原理
按照单例的编码规则,Servlet本身只是一个Java,结构并不是单例结构. 只是Web容器在维护这些Servlet的时候只给创建一个实例存在JVM中,用户请求服务时,服务器只调用它已经实例化好的Se ...
- Decimal To Fraction 小数转换成分数
以0.25为例, 0.25 * 100 = 25, 求25 和 100 的最大公约数gcd. 25/gcd 为分子. 100/gcd为分母. //小数转分数 //0.3 -> 3/10, 0.2 ...
- Centos7安装配置NFS服务和挂载
现在有3台服务器 s1(主),s2(从), s3(从)需要实现文件实时同步,我们可以安装Nfs服务端和客户端来实现! 一.安装 NFS 服务器所需的软件包: 1 yum install -y nf ...
- des加密解密的两个方法
<?php //$input - stuff to decrypt //$key - the secret key to use function do_mencrypt($input, $ke ...
- jQuery源代码学习之五——jQuery.when
jQuery.when提供了基于一个或多个对象的状态来执行回调函数的功能,通常是基于具有异步事件的异步队列. 如果传入多个异步队列,jQuery.when会返回一个新的主异步队列的只读副本(promi ...
- 【转】Web性能压力测试工具之ApacheBench(ab)详解
PS:网站性能压力测试是性能调优过程中必不可少的一环.只有让服务器处在高压情况下才能真正体现出各种设置所暴露的问题.Apache中有个自带的,名为ab的程序,可以对Apache或其它类型的服务器进行网 ...