32位系统部署到64位下常见问题及解决

 小弟虽在园子里转悠很长时间,但却未曾写下点东西,不是不想写,实在是没有这个时间,前些时候接到客户要求,要将我们做过的一些老系统部署到新服务器上,该服务器安装的是windows server 2008 R2系统,当时接到这个需求的第一反应就是老系统能不能在新环境下正常运行?需要验证一下,下面我就把我的一些验证方式及心得分享给大家,因为自己能力有限,还请大家多提意见。

       首先碰到的问题就是:COM组件调用出错的问题,这个问题可能比较典型,64位下就是会报找出到COM组件的问题,网上搜索的问题解释为COM组件大部分还只能在32位环境下运行,因此解决方式是在编译的时候用X86的方式编译即可,但是我在部署之后发现依然报错,后排查问题发现在IIS7下需要配置相关配置。见下图:

image

需要启用32位应用程序,将其选为True后,程序运行正常。

       第二,在部署一个服务的时候,发现服务运行正常,但是功能有问题,不执行任何操作,后排查之,发现有一个连接MySQL的组件:MySQLDriverCS.dll,这个组件在64位下无法正常运行,日志中记录的都是这个组件的错误,按照上面的经验,把项目按照X86的方式编译,后测试组件,发现组件运行正常,但是服务启动不了,报一个DLL引发了异常,后在64位环境下查看日志,发现程序无法访问系统注册表,问题变的有些奇怪了,没有办法只能用ODBC重写数据库操作,问题解决。

       第三,关于数据库,客户将数据库升级为SQL Server2008 R2之后,发现有些情况,数据获取没有问题,但是操作数据,比如增加修改会报错误,当时百思不得其解,后发现是连接字符串有问题,主要是SQL Server2008在兼容设置有问题,日期格式兼容错误,后修改连接字符串,问题解决。

这是我前一阵子给客户部署新环境的时候碰到的问题,可能解决的本不正确,但好在都解决了。希望能给一些碰到过类似问题的人一些解决方案。

http://www.cnblogs.com/Nick-Ni/archive/2011/08/26/2154489.html
原文地址:https://www.cnblogs.com/blosaa/p/2757620.html