运行于64操作系统上的C#客户端通过WCF访问Oracle数据库不兼容问题

运行平台: Windows 7  64位操作系统

运行环境: IIS 7

编程语言:C#

数据库: 32位的Oracle 10g

运行原因:64位操作系统C#客户端程序通过WCF访问ORACLE数据库

结果产生异常:System.InvalidOperationException: 未在本地计算机上注册“MSDAORA”提供程序

客户端程序在本地运行能够正常访问Oracle数据库数据, 但通过WCF连接不上Oracle数据库, 一开始以为是"MSDAORA"驱动没装上,通过检查,MSDAORA其实已经存在, Oracle Client 也已经装上,但还是不行。通过百度搜索发现MSDAORA没有用64bit的驱动,于是按照网上给出的解决方案进行尝试:

方案:把程序全部(包括所有的DLL)重新编译,编译的目标是x86(32位), 然后再发布到远程服务器上。

按照网上给出的方案对所以项目将编译目标改成x86后重新编译,运行客户端程序的时候却又出现了新的问题:

难道网上给出的方案不行吗?第一次遇到这种问题,百思不得其解,只能又求助于百度。经过又一轮的百度,发现将项目编译目标改成x86后重新编译还不够,还需要

配置一下IIS的应用程序池,将应用程序池配置成“启用32位应用程序”,如下图所示配置:

经过更改IIS应用程序池配置后,再运行客户端程序,OK一切正常。

备注:因为客户端程序用C#编写所以标题中有C#关键字,但是其它编程语言编写的客户端程序可能也会遇到同样的问题。

时间: 2024-12-24 07:12:48

运行于64操作系统上的C#客户端通过WCF访问Oracle数据库不兼容问题的相关文章

.net中使用ODP.net访问Oracle数据库(无客户端部署方法)

.net中使用ODP.net访问Oracle数据库(无客户端部署方法) 分类: c# database2012-01-05 15:34 6330人阅读 评论(1) 收藏 举报 oracle数据库.netcomponentsdll ODP.net是Oracle提供的数据库访问类库,其功能和效率上都有所保证,它还有一个非常方便特性:在客户端上,可以不用安装Oracle客户端,直接拷贝即可使用. 以下内容转载自:http://blog.ywxyn.com/index.php/archives/326

winform客户端 远程广域网访问SQL数据库的各项配置

各类学习网站都没有详细而简单的提供一套完整远程解决方案.也由于其中涉及非软件开发知识.通过认真学习和实践,在这里给出完整全面的解决方案,以供有需要的网友参考研究. (原创:唐飞 QQ:87671675 ,有更好建议的可留言,或者加QQ互相学习交流.) 从外网访问SQL数据库服务器 分四步论证逐一完成: 一.针对电信,联通,移动 宽带供应商的要求: 1.公网固定IP或拨号获得的公网动态ip(某些100开头的ip地址为私网ip将无法实现远程访问,只能用特殊域名工具绑定). 2.公网动态ip 绑定的域

如何在Window 7 64位 PL/SQL 访问oracle 数据库

一般 PLSQL Developer 没有64位版本,所以在64位系统上运行该程链接64位Oracle时就会报错.解决的方法如下: 第零步:在windows 7 中安装Oracle 11g 64 数据库, 如安装到 F:\ p10404530_112030_MSWIN-x86-64_1of7.zip p10404530_112030_MSWIN-x86-64_2of7.zip 先解压到一个文件夹中,然后安装Oracle 11g 64 数据库,但不要创建数据库.安装完后,通过Net Manager

64位平台32位MSSQL通过DBLink访问Oracle,Error 7399

系统平台: 64位 MSSQL 2005 32 位 当安装32位的Oracle Client后,在SQL里创建DBLink时报错: The OLE DB provider "MSDAORA" for linked server "SZMESP" reported an error. The provider did not give any information about the error.Cannot initialize the data source o

客户端如何访问访问oracle 12c 64位的数据库

服务器A安装的oracle 12c 64位的数据库,机器B如何访问oracle数据库. 准备: 1.下载instantclient-basic-nt-12.1.0.2.0.zip,下载地址:http://pan.baidu.com/s/1c04lzSO 2.下载plsql,下载地址:http://pan.baidu.com/s/1bnHKDOj 安装步骤 1.安装orcle客户端 将下载的 instantclient-basic-nt-12.1.0.2.0.zip解压到机器B中非中文路径的目录下

在 Oracle 数据库上使用 Visual Studio 2005 或 2008 构建 .NET 应用程序 了解构建使用 Oracle 数据库的 .NET 应用程序所涉及到的基本但不可或缺的过程。

随着 Microsoft 的 .NET Framework 的日益流行,许多开发人员迫切想了解关于将 .NET 应用程序与 Oracle 集成的最佳方法的信息 - 不仅在基本连通性方面,还包括与使用 Visual Studio 2005 或 2008 进行有效应用程序开发的关系. 在本文中,我将说明构建使用 Oracle 数据库的 .NET 应用程序所涉及到的基本但不可或缺的过程,包括: 如何添加工程引用,以在您的 .NET 工程中支持 Oracle 类 如何创建 Oracle 数据库连接字符串

在64位Win7中使用Navicat Premium 和PL\SQL Developer连接Oracle数据库备忘

最近接手了一个项目,服务器端数据库是oracle 11g 64位.由于主要工作不是开发,也不想在自己的电脑上安装庞大的oracle数据库,因此寻思着只通过数据库管理工具连接数据库进行一些常用的查询操作. 运行环境 服务器:windows server 2008 64位 服务器oracle版本:oracle 11g R2 64位,字符集是ZHS16GBK. 本机:windows 7 64位 需要准备的软件 1.Instant Client 12.1.0.2.0 32位和64位 Instant Cl

在C#中,不安装Oracle客户端如何连接Oracle数据库

本方法优点: 1.程序内集成Oracle客户端,无需用户自行进行配置 本方法缺点: 2.增加程序包的体积(Oracle instant client本身有几十兆大小) 下面说一下如何实现. 0.首先,从Oracle网站上下载对应版本的Oracle instant client包,网址在这里 http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 由于是Windows程序,只需要下载W

应用偶发性连接不上Oracle数据库的排查案例

问题描述 有一个应用,偶尔会出现访问不了的情况.具体表现为,当其它应用调用它的接口时,可能会出现超时,过一段时间后,再调用它的接口可能又正常了.观察应用日志发现,这个被调用的应用会偶发性地连接不上数据库.因为该应用没有办法及时地查询到数据库,应用返回数据时间过长,也就导致调用该应用接口的其它应用超时.这种情况比较偶发,一天大概几次,没什么特别规律. 应用日志中只能大概看出,出现问题时该应用查询不了数据库,与数据库的连接丢失,没有太多其它的信息: 2017-06-05 23:23:44,941 I