这几天开发一个WebService遇到不少问题,记录下来顺便帮助一下之后遇到状况的人。web
我是经过ADO.NET来链接ORACLE的,也能够用ORACLE提供的ODP.NET。服务器
经过正常的链接后部署IIS 用IE调用个人接口出现了框架
“System.InvalidOperationException: 尝试加载 Oracle 客户端库时引起 BadImageFormatException。若是在安装 32 位 Oracle 客户端组件的状况下以 64 位模式运行,将出现此问题。 ---> System.BadImageFormatException: 试图加载格式不正确的程序。”测试
解决这个问题:网站
第一步缘由:spa
我服务器系统是 Server2008 R2 64位 ORACLE的服务端安装的是64位,客户端安装64位,为了解决了这个问题,我经过WinForm程序测试用ADO.NET经过64位的ORACLE客户端链接64位服务端始终不成功。无奈之下安装了32位的客户端后就能够访问了。orm
第二步缘由:接口
我开发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的中间加入以下配置节内容