wcf service+win2008+oracle10g 创建的过程

   

  这几天做一个Wcf service,发布win2008服务器上,其中wcf service调用了Oracle10的数据库,该数据库建在win2003服务器上.

因为win2008是64位操作系统,令我颇费了一番工夫。

我首先建好了wcf service,在本机上测试No problem, 发布到服务器上No problem 。

然后创建Demo调用wcf 的函数,不成功,提示"实例未创建";

仔细检查了好半天,原来是win2008上没有装Oracle客户端,

郁闷,居然犯这种低级错误!

找了两个11的客户端: win32_11gR1_client, win64_11gR2_client;

不用想, 当然是64bit,直接选择第二个,刷刷就装上了。

再运行Demo,以为这下该没问题了,正自得意,结果很受伤,又跳出来一大串错误信息:
This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed...

看上面的意思,难道是64bit win2008对32 bit的Oracle不能识别?

大概也许一定是吧,于是卸掉win64_11gR2_client,再装上win32_11gR1_client,再运行,

结果又现下面的错误:
System.Data.OracleClient requires Oracle client software version 8.1.7 or greater

8嘎,这都11g了,还要greater啊?用plsql logon 试试 也没问题呀!!!

没办法,只好求助于google了,还真有人遇到过,说是要将32bit和64bit的都装在win2008上,

并且在系统环境变量的path中配置了C:\oracle\product\11.1.0\client_1\BIN\oci.dll和C:\oracle\product\11.2.0\client_2\BIN\oci.dll

按照高人的指点,把两个版本都装上并检查确认环境变量没有问题了,抱着怀疑的心情再试了一下,仍然不成功,

这下错误信息又变成: ORA-12154: TNS:could not resolve the connect identifier specified,

无法解析,怎么会这样呢? 再用plsql连接,没问题


我用的连接串是:
connectionString="Data Source=mrpc;uid=mrpc;pwd=proto;" providerName="System.Data.OracleClient"
找了一个在VB6通过ODBC连接同一库的程序,在服务器上运行,也能成功!

由此想到应该是System.Data.OracleClient   这个东西搞的鬼,不管它了,干脆把连接串改成如下:
connectionString="Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = dn2prod111)(PORT = 1521)))(CONNECT_DATA =(SID = mest)));uid=mrpc;pwd=proto;" providerName="System.Data.OracleClient"

这下终于成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值