C#使用System.Data.OracleClient连接Oracle数据库。之前在WinXP上正常运行的程序移植到Windows 2008 x64上之后就连不上数据库了,错误信息如下:
启动database2sharp工具时提示:
数据连接不成功,请检查该数据库是否已启动尝试加载oracle客户端时引发BadImageFormatException.如果在安装32位Oracle客户端组件的情况下以64位模式运行,将出现此问题。
错误原因是原来WinXP机子上所安装的OracleInstantClient是32位,所以编译的程序所用的OracleClient也是32位的,从而导致兼容问题。当然,如果在64位操作系统上重新安装64位的Oracle客户端再重新编译程序也是能解决问题的。这里我们介绍一种简单的方法来移植程序。
实际上,System.Data.OracleClient所指向的是PATH环境变量下的oci.dll。因此,我们只要让程序能够找到64位的oci.dll就可以了。方法如下:
1. 下载instantclient-basic-win-x86-64-11.1.0.7.0.zip,并解压,如C:\instantclient-basic-win-x86-64-11.1。
2. 在系统的环境变量PATH中加入以上路径。
之后再运行程序,程序会依照PATH路径寻找oci.dll,如果遇到32位的oci.dll会自动略过,找到64位的oci.dll就能连接上数据库了。
上面是网上的解决方法,我机器WIN8.1 64位 。安装了oracle 11XE 64位操作系统,C#调试运行出现如标题的错误。试了上面的解决方法不行。但是上面给了一个很好的思路就是,调用oracleclient的时候出错了。我安装了一个32位客户端,就可以了。版本如下
instantclient-basic-win32-11.2.0.1.0
尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。
从10G开始,Oracle提供了一个较为轻量级的客户包,叫做Instant Client. 将它安装好后,就不用再安装庞大的Oracle Client了. 这样一来,只要客户端下载Instant Cl ...
Asp.net 程序连接orcle如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,
本人使用orcale11g 安装orcale 之类以及navicat配置在这里不提,之后会写一篇文章来说明. 到此已经安装和配置navicat访问数据正常,但是运行Asp.net 程序报错 问题如下 ...
IIS发布后出现“如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题”错误
VS2010运行程序没有任何问题,但是发布到IIS以后,连接数据库时报错:“尝试加载 Oracle 客户端库时引发 BadImageFormatException.如果在安装 32 位 Oracle ...
报错:尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。
问题: 在写windows服务时,发布后日志报错:尝试加载 Oracle 客户端库时引发 BadImageFormatException.如果在安装 32 位 Oracle 客户端组件的情况下以 64 ...
运行时报:尝试加载 Oracle 客户端库时引发 BadImageFormatException,如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题
运行环境为: Windows Server2012 Oracle11g 32位数据库+客户端 IIS发布后提示错误信息: “尝试加载 Oracle 客户端库时引发 BadImageFormatExc ...
关于C#连接Oracle数据库 尝试加载Oracle客户端时引发BadImageFormatException 如果在安装32位Oracle客户端组件的情况下以64位模式运行,将出现此问题
这个问题已经困扰了我快一个月了,各种百度,各种博客,可是,一个个都试过了,什么下载32位客户端,配置环境变量什么的,纯属扯犊子,开发环境win10 64位 oracle 11g r2 64位,这 ...
随机推荐
yii create url (二)
在Yii中经常要生成URL,不管是为了自动跳转还是仅仅是一个链接.下面对Yii中的URL生成做了一个总结.提示:以下controllerX代表控制器X,actionX代表方法X.在Controller ...
iOS开发,系统自带的分享简单实现
由于simulator设置里面没有新浪微博的选项,所以选择了真机调试,成功了.代码不多,包含头文件 没有配置登录信息的话,是没有作用的 ...
Android的ADB配置环境和adb指令使用
adb的全称为Android Debug Bridge,就是起到调试桥的作用,作为一名开发者倒是常用到这个工具.借助adb工具,我们可以管理设备或手机模拟器的状态.还可以进行很多手机操作,如安装软件. ...
POJ 1743 后缀数组
题目链接:http://poj.org/problem?id=1743 题意:给定一个钢琴的音普序列[值的范围是(1~88)],现在要求找到一个子序列满足 1,长度至少为5 2,序列可以转调,即存在两 ...
c 语言结构体的三种定义方式
struct 结构体名{ 成员列表: ..... }结构体变量: 结构体类型变量的定义 结构体类型变量的定义与其它类型的变量的定义是一样的,但由于结构体类型需要针对问题事先自行定义,所以结构体 ...
Python中的logging模块
http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stack ...
問題排查:F5啟動偵錯後所提示的錯誤 (1)
原始專案版本:Visual Studio 2005 開發環境:Visual Studio 2013 偵錯運行環境:IIS Express 啟動偵錯後,錯誤提示內容如下: HTTP 错误 500.23 ...
Java API ——StringBuffer类
1.StringBuffer类概述 1)我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间.而StringBuffer就可以解决这个问题 2)线程安全的可变字 ...
Mybatis连接配置文件详解
<?xml version="1.0" encoding="UTF-8" ?>q ...
jQuery学习--Code Organization Concepts
jQuery官方文档: http://learn.jquery.com/code-organization/concepts/ Code Organization Concepts(代码组织概念) ...