C# 调用 WebService 连接ORACLE 11g
这几天开发一个WebService遇到很多问题,记录下来顺便帮助一下以后遇到情况的人。
我是通过ADO.NET来连接ORACLE的,也可以用ORACLE提供的ODP.NET。
通过正常的连接后部署IIS 用IE调用我的接口出现了
“System.InvalidOperationException: 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。 ---> System.BadImageFormatException: 试图加载格式不正确的程序。”
解决这个问题:
第一步原因:
我服务器系统是 Server2008 R2 64位 ORACLE的服务端安装的是64位,客户端安装64位,为了解决了这个问题,我通过WinForm程序测试用ADO.NET通过64位的ORACLE客户端连接64位服务端始终不成功。无奈之下安装了32位的客户端后就可以访问了。
第二步原因:
我开发WebService的时候用2.0的框架,我本机系统是64位的WIN7,在生成程序的时候我是默认的Any CPU。可能生成发布的时候是64位的,网上有说改为X86,但这种方法也依然无法解决我的额外难题,然后我在IIS里对应网站的应用程序池里把“启用32应用程序”设位Treu 这下可以运行了。
在调用WEBSERIVCE的时候又出现了问题,在IE调用接口报“webservice 返回datatable无法序列化 DataTable。未设置 DataTable 名称。” 我webService调用了一个方法 方法返回值是DataTable 按照提示我把 DataTable加载了 Name但还是没有解决这个问题,应为DataTable无法序列化 后来转换为了DataSet解决了这个问题。
还有一个问题是没有在目标机器上也就是没有在部署的WEBSERIVCE的IIS机器上访问Web接口的时候会出现“测试测试窗体只能用于来自本地计算机的请求。”的错误,这个问题解决方法要在配置文件里面添加
在web.config的<system.web></system.web>中间加入如下配置节内容
<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="Documentation"/>
</protocols>
</webServices>
最新文章
- jsfl脚本设置导出AS链接名遇到的奇怪问题
- Atitit. 构造ast 语法树的总结attilax oao&#160;1. Ast结构树形12. ast view (自是个160k的jar )22.1. 多条语句ast结构22.2. 变量定义&#160;int&#160;b,c;&#160;的ast结构22.3. 方法调用meth1(a=1,b=2,c=3);&#160;&#160;的ast结构23. 误解的问题33.1. 语法书子能是个二叉树,实际上多叉树越好..33.2. 非要不个ast放到个s
- 为毛无法创建文本文件COM1.txt
- SQL 扩展事件
- Java for LeetCode 074 Search a 2D Matrix
- 【转】 Ucenter同步登录原理解析
- nslookup命令详解
- Extjs springmvc session 超时 处理
- 浅谈Android studio中OKHttp安装及简单使用
- EF编辑
- alpha冲刺第七天
- SVN冲突解决
- 如何制作中文Javadoc包,并导入到Eclipse
- html页面嵌套两个iframe页面导致第二个iframe页面高度失效的问题
- WindowsPE权威指南 第二章 小工具 PEComp代码的C语言实现
- webpack入门(五)webpack CLI
- Android Studio模拟器磁盘空间不足(Not enough disk space to run AVD)
- Quartz.Net分布式任务管理平台
- 第三个Sprint冲刺第二天(燃尽图)
- 1、pandas使用sort_values排序