首页 新闻 会员 周边

web service 访问不了oracle

0
悬赏园豆:30 [已解决问题] 解决于 2014-10-13 15:13
 win from 链接oracle 没问题,同样的代码,放在webservice 中就不行了

报错是   --》尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。 

ps:oracle客户端我已经安装了,winform链接没问题,代码如下

 

DataTable dt = new DataTable();
OracleConnection oc = new OracleConnection("Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.2.236)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)));User ID=DAS;Password=DAS;Unicode=True");
oc.Open();
OracleDataAdapter DataAdpt = new OracleDataAdapter("SELECT * FROM MS_TENPO", oc);
//OracleCommandBuilder CBuild = new OracleCommandBuilder(DataAdpt);
DataSet DataSet1 = new DataSet("ANBUN_SHIJI");
//DataTable DataTable1 = new DataTable("ANBUN_SHIJI");
DataAdpt.Fill(DataSet1, "ANBUN_SHIJI");
dt = DataSet1.Tables[0];

请各位大神帮个忙

清风淡云的主页 清风淡云 | 初学一级 | 园豆:175
提问于:2014-10-11 16:31
< >
分享
最佳答案
1

你在电脑上安装一个32们的oracle客户端就解决了。我以前也这样解决的。

收获园豆:20
hexllo | 菜鸟二级 |园豆:318 | 2014-10-12 15:19

非常感谢,问题已解决,就是这个问题,64位机器上安装64位的客户端就不可以,但还是不知道最终原因

清风淡云 | 园豆:175 (初学一级) | 2014-10-13 15:13
其他回答(2)
0

将 IIS 应用程序池修改为 32 位模式

Launcher | 园豆:45045 (高人七级) | 2014-10-11 16:46
1

问题是两个项目是x86还是x64发布?还是anycpu?他们是相同的吗?web服务是直接部署到iis上测试的吗?那么iis程序池也要配置支持x86模式(如果需要的话)。

一般的,操作系统是x86就要安装x86的oracle client,操作系统是x64的同理。如果开发程序是anycpu编译那么两个系统环境下都可以跑,否则只能对应编译不同版本发布出来。

收获园豆:10
zwmyxzs | 园豆:240 (菜鸟二级) | 2014-10-11 16:46

两个项目都是anycpu,win from 能直接访问,web service vs2013运行后不能访问,放到iis上提示我安装8.1以上客户端,但是我已经安装了啊。求解

支持(0) 反对(0) 清风淡云 | 园豆:175 (初学一级) | 2014-10-11 17:00

iis已经启用了32位支持

支持(0) 反对(0) 清风淡云 | 园豆:175 (初学一级) | 2014-10-11 17:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册