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位环境
- 将ODAC121012Xcopy_x64.zip解压到磁盘中的某个目录,如:“D:\ODAC121012Xcopy_x64.zip”,然后在命令行进入这个目录,输入如下命令:“install.bat all C:\odp.net myhome(install all components)”。
- 运行上述命令后,将自动将所有的文件拷贝到C:\odp.net目录下,接下来,在命令行进入C:\odp.net目录,运行一下命令:“configure.bat all myhome(configure all component) ”。上述命令将自动想GAC注册ODP.NET相关的dll,同时在vs2010中添加引用的时候能看到想要版本的Oracle.DataAccess.dll。
- 最后需要添加系统环境变量Path, c:\odp.net;c:\odp.net\bin;
配置文件中添加
<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。
odp.net连接方式,部署问题总结的更多相关文章
- ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借
ASP.NET MVC深入浅出系列(持续更新) 一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...
- gitlab两种连接方式:ssh和http配置介绍
gitlab环境部署好后,创建project工程,在本地或远程下载gitlab代码,有两种方式:ssh和http (1)ssh方式:这是一种相对安全的方式 这要求将本地的公钥上传到gitlab中,如下 ...
- omnibus方式部署gitlab
omnibus方式部署gitlab Posted on 2015 年 1 月 10 日 4233 Views 这几天折腾搭建git服务器,选择了比较流行的gitlab,一开始就直奔一键安装脚本去了 ...
- 运维监控-基于yum的方式部署 Zabbix Agent 4.0 版本
运维监控-基于yum的方式部署 Zabbix Agent 4.0 版本 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 上一篇博客我们分享了如何基于yum的方式部署zabbix 4. ...
- java oracle thin 和 oci 连接方式实现多数据库的故障切换
java oracle thin 和 oci 连接方式实现多数据库的故障切换 一.thin方式 该种方式简便易用非经常见. 当中URL为 jdbc:oracle:thin:@(DESCRIPTION= ...
- Tidb 离线Ansible方式部署实践
1.最近浏览到一个比较新的分布式数据库Tidb,开源看起来比较牛的样子,一时手痒就动手试试部署 2.参考官方 Ansible 离线方式部署 :https://pingcap.com/docs-cn/o ...
- Docker 方式部署 Solo 博客系统总结
此篇为Docker部署方式,另有Tomcat部署方式,请参考文章<Tomcat 方式部署 Solo 博客系统总结> 最近搭建了一个博客系统,作为自己的主页,方便记录一些平时所见所闻 ...
- MySQL连接方式小结
1. 连接方式 1.1 方式1 /usr/local/mysql5./bin/mysql -p 此方法默认采用root@localhost用户登录, 1.2 方式2 /usr/local/my ...
- gitlab两种连接方式:ssh和http配置介绍 --转自 散尽浮华
gitlab环境部署好后,创建project工程,在本地或远程下载gitlab代码,有两种方式:ssh和http 1)ssh方式:这是一种相对安全的方式 这要求将本地的公钥上传到gitlab中,如下图 ...
随机推荐
- 关于python项目路径导入自己写的库出错的一点思考
其实也是在写自己项目的时候遇到的,以前也遇到了但是一直采取的是回避的策略,这次总算弄清楚所以总结一下. 这个项目的顶级目录是medivac,他本身是一个python模块. 熟悉flask的人都知道,在 ...
- 【Java】 内部类
[Java]内部类 可以将一个类的定义放在另一个类的定义内部,这就是内部类. 使用内部类的的原因主要有三点: 内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据. 内部类可以对同一个包中的 ...
- BZOJ3829[Poi2014]FarmCraft——树形DP+贪心
题目描述 In a village called Byteville, there are houses connected with N-1 roads. For each pair of ho ...
- BZOJ4516 SDOI2016生成魔咒(后缀数组+平衡树)
一个字符串本质不同的子串数量显然是总子串数减去所有height值.如果一个个往里加字符的话,每次都会改动所有后缀完全没法做.但发现如果从后往前加的话,每次只会添加一个后缀.于是我们把字符串倒过来,每次 ...
- 分布式 NewSQL 对比
1.TiDB: 说明: PingCAP 公司基于 Google Spanner / F1 论文实现的开源分布式 NewSQL 数据库. 开源分布式 NewSQL 关系型数据库 TiDB 是新一代开源分 ...
- 睡前小dp-codeforce414B-dp+一点点想法
http://codeforces.com/problemset/problem/414/B 定义一个串为好的串当这个串符合 di|di+1,1<i<k-1 给定一个n为串中元素的取值范围 ...
- HDU-1686-KMP-水题
纯KMP #include <cstdio> #include <algorithm> #include <cstring> #include <ctype. ...
- ubuntu 18.04 使用 nvm 安装 nodejs
20190315 使用 nvm 安装 nodejs 1. 找到 nvm 官网帮助 https://github.com/creationix/nvm 我习惯于 terminal 操作,所以选择 git ...
- 51Nod - 1107 斜率小于0的连线数量
二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线的数量. 二维平面上的一个点,根据对应的X Y坐标可以表示为(X,Y).例如:(2,3) (3,4) (1,5) (4, ...
- 打开SharePoint 2013 web application显示iis 欢迎页面
当我打开SP web application时,页面显示如下: 查看event log,发现有一些8315-8317之类的error,发现把request management service停掉后, ...