X64位系统中Oracle.DataAccess.dll部署问题

本文记录了一次Webservice部署过程中的多次失败经历,包括环境配置、版本兼容性问题及客户端远程调用测试等挑战。

  最近有个项目给客户做系统接口,其实也就是Webservice了。20几个接口,花了3天左右的时间(不知道是快还是慢,同事说挺快,不知道是真是假。)把整个框架和接口功能相关接口文档都完成了(接口文档现有模版,直接填写即可)。离客户预定的时间点还有3、4天。自己想着在自己机器上都测试通过,并无发现啥问题,也就没有太紧张。想着今天去客户测试服务器上部署一下,让客户来测试、测试。

  于是乎一大早起来步行。。。公交。。。地铁。。。

终于到了,和客户接上头:先把接口文档给客户,自己就开始在测试服务器上部署。。。(今天的杯具开始了。。。)

首先说明一下本机环境:

WIN7 X64 

Oracle Client 11gR2

Oracle.DataAccess.dll 版本 2.112.2.0

客户测试服务器环境:

WIN 2008 R2(好像只有X64的)

Oracle 11g

第一次部署:

  信心满满的去准备部署,IIS中添加好应用程序,在IE中开始测试服务。杯具发生。。。报错。

2011051822465874.png

冒汗啊。查看服务器配置,发现IIS中都未安装ASP.NET等支持。赶紧安装、配置。

再浏览测试。杯具再次发生。。。。

2011051822542346.png

汗再次冒出来,客户就在旁边看着。。。丢人丢大了。。。

仔细想想以前好像遇见过这个问题,是否是测试服务器上的Oracle.DataAccess.dll是32位版本的,而IIS中应用程序池却使用的是64位的,修改IIS应用程序池设置就行了。

还一边和客户,一边心里想着这下应该没有问题了吧。

再浏览测试。杯具再次发生。。。

2011051823004385.png

汗完全留下来了。。。当时就想找个洞钻下去。太丢人了!回到自己开发机器上,排错去。

第二次部署:

 在开发机器上看了Oracle.DataAccess.dll 版本是2.112.1.2 ,测试服务器上的是2.112.1.0。杯具。。。找到原因了,两个版本号不一致。而且发现客户机上无64位的Oracle.DataAccess.dll.

IIS中只能开始32位应用程序支持。赶紧找解决办法:

解决办法就是在web.config中修改,在configSections节点结束之后增加如下内容:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
        <dependentAssembly> 
            <assemblyIdentity name="Oracle.DataAccess" 
            publicKeyToken="89B483F429C47342" 
            culture="neutral" /> 
            <bindingRedirect 
              oldVersion="2.112.1.2" 
              newVersion="2.112.1.0"/> 
        </dependentAssembly> 
    </assemblyBinding> 
</runtime>

再次在测试服务器上部署。

再浏览测试。这次终于看到了好像正确的WebService界面,此时和客户说部署好了,让他可以测试一下。客户耐着性子说他远程来测试一下。

这次杯具再次发生了。。。今天真的是倒霉的一天。

在客户远程的客户机上不可以调用测试,显示错误:

“返回信息“测试窗体只能用于来自本地计算机的请求。”

今天是栽了!!!

第三次部署:

 上面那个问题是WEB.CONFIG中没有做设置。加入

<webServices>
            <protocols>
                <add name="HttpSoap"/>
                <add name="HttpPost"/>
                <add name="HttpGet"/>
                <add name="Documentation"/>
            </protocols>
</webServices>

客户端远程可调用测试。

至此。今天丢人到此结束。感觉做事还是要踏实和认真,不能有马虎,一定要做好充足的准备。

转载于:https://www.cnblogs.com/TH000/archive/2011/05/19/2050902.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值