zoukankan      html  css  js  c++  java
  • [部署]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发布的错误,个人感觉网上的解决方法很多,但由于遇到的问题范围特别广,不一定能解决问题,

    个人感觉,有的时候排错也是要"跟着感觉走!!!"

  • 相关阅读:
    Kubernetes基本概念之Volume
    Kubernetes对象之PersistentVolume,PersistentVolumeClaim和StorageClass
    SSDB高效能缓存系统
    python2升级python3
    pkg-config相关的常用指令
    CISSP考试经验分享
    如何在命令行添加换行符到git commit -m "xxx"
    为什么tcp-wrappers被Redhat Centos Fedora废弃?
    Docker 国内仓库和镜像
    shell脚本对代码执行时间的计时
  • 原文地址:https://www.cnblogs.com/zhenhong/p/3745452.html
Copyright © 2011-2022 走看看