做web服务迁移,从32位win2003迁移到64位win2003,数据库是32位Oracle在另外一台服务器上。
迁移之后数据库各种连不上,oracle的客户端32位的装完装64位的,odp.net也是各种装,已过一段实验数据库连接工具终于连接上数据库了,可是64位的iis还是连接不了数据库。一会儿32位一会儿64位,本来oracle就不熟客户端还特别的大,没有闲功夫研究它了。让我们用一个最简单最不负责任的办法解决它吧,哼哼。
让64位系统下的iis 改成32位运行。
IIS7 很简单,在网站对应的应用程序池上右键高级设置,常规 里的 启用32位应用程序 改为 true 就可以了
IIS6稍微复杂一些,
1,命令行里运行
cscript.exe %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
即修改IIS配置,允许32位程序运行
2,重新注册.net frameWorks
%SYSTEMROOT%\Microsoft.NET\framework\v2.0.50727\aspnet_regiis.exe -i
3,完成之后,IIS的Web服务扩展,会多出一个32位的asp.net将其设置为允许。这样就可以了,问题是IIS上所有的站点就都以32位兼容方式运行了,呵呵。
4,之后有可能出现Service Unavailable错误。有可能是ISAPI筛选器错误,可以看一下系统日志。解决方法:打开iis-->查看“网站”的属性--->ISAPI 筛选器-->把有向下的红箭头的项删除掉-->重启iis-->OK 。不OK就把网站属性主目录配置里面的ISAPI筛选器也都删除掉就OK了。