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

  最近有个项目给客户做系统接口,其实也就是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中开始测试服务。杯具发生。。。报错。

X64位系统中Oracle.DataAccess.dll部署问题_第1张图片

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

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

X64位系统中Oracle.DataAccess.dll部署问题_第2张图片

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

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

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

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

X64位系统中Oracle.DataAccess.dll部署问题_第3张图片

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

第二次部署:

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

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

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

 
     
         
                        publicKeyToken="89B483F429C47342" 
            culture="neutral" /> 
                          oldVersion="2.112.1.2" 
              newVersion="2.112.1.0"/> 
       
 
   
 

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

再浏览测试。这次终于看到了好像正确的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

你可能感兴趣的:(X64位系统中Oracle.DataAccess.dll部署问题)