zoukankan      html  css  js  c++  java
  • odp.net连接方式,部署问题总结

    一. 摘要

    在C#开发的过程中,经常需要操作Oracle数据库,而实际在部署程序的时候,经常要根据系统环境(32、64bit)、不安装Oracle客户端等等需求,而Odp.net 也没有完美兼容的类库,应用可以调用, 所以部署起来总是碰到各种问题,挺头疼的,在这里,我对工作中碰到的问题进行总结一下。

    二. 本文提纲

    连接方式

    32位系统

    64位系统

    免安装Oracle客户端

    小结

    三. 主要内容

    连接方式

    C#连接Oracle的方式,我一般都是通过odp.net 进行连接

    <configuration>
        <connectionStrings>
          <add name="OracleDB" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=数据库IP地址)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=实例名)));User Id=账号;Password=密码;Min Pool Size=10;Connection Lifetime=120;Connection Timeout=60;Incr Pool Size=5; Decr Pool Size=2" providerName="Oracle.DataAccess.Client"/>
        </connectionStrings>
    </configuration>

    32位系统

    1. 安装Oracle客户端:  ODTwithODAC1120320_32bit 

    2. 直接调用即可,没什么好说的,如果要免安装客户端,下面会说到

    64位环境

    1. 将ODAC121012Xcopy_x64.zip解压到磁盘中的某个目录,如:“D:ODAC121012Xcopy_x64.zip”,然后在命令行进入这个目录,输入如下命令:“install.bat all C:odp.net myhome(install all components)”。
    2. 运行上述命令后,将自动将所有的文件拷贝到C:odp.net目录下,接下来,在命令行进入C:odp.net目录,运行一下命令:“configure.bat all myhome(configure all component) ”。上述命令将自动想GAC注册ODP.NET相关的dll,同时在vs2010中添加引用的时候能看到想要版本的Oracle.DataAccess.dll。
    3. 最后需要添加系统环境变量Path, c:odp.net;c:odp.netin;

    配置文件中添加

      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-4.121.1.0" newVersion="4.121.1.0" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>

    免安装Oracle客户端:

    将5个Oracle客户端的类库文件提取出来,放到程序根目录下,分别是oci.dll、Oracle.DataAccess.dll、orannzsbb11.dll、oraociei11.dll、OraOps11w.dll

     <system.data>
        <DbProviderFactories>
          <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
        </DbProviderFactories>
      </system.data>

    关于64位系统下,暂时还未测试,Oracle客户端的类库也必须是64位的

    四. 小结

    在部署程序的时候,如果遇到一些捕捉不到的异常,底层跑出来的, 这个时候可以安装一下 C++ 的运行库 ,比如:vc2008redist 或 vc2010redist。

  • 相关阅读:
    ES6解构赋值
    ES6兼容
    ES6关键字
    ES6模板字符串
    Bootstrap面试题
    Javascript中类型转换的情况以及结果
    事件
    ES6 解构赋值
    ES6 基础(let const)
    数组与字符串常用方法
  • 原文地址:https://www.cnblogs.com/storys/p/4076178.html
Copyright © 2011-2022 走看看