因为是第三方开发的组件,而且很不幸的是,找不到这个第三方了。但客户的硬件升级了,不再支持32位的操作系统,虽然用虚拟机也是一个解决方法,但毕竟无法发挥硬件的全部优势,还得解决组件的问题。
网上找了N种方法,都没有完全解决,最后结合了一下,方法如下:
1、注册组件。
把组件拷贝到C:\Windows\SysWOW64目录下再注册。注册组件.bat:
regsvr32 xxx.dll
据说可以自动区分32位还是64位,在此分享一下,不过还是直接拷贝了注册比较稳妥。
reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL && set OS=32BIT || set OS=64BIT
if %OS%==32BIT %windir%\system32\regsvr32.exe xxx.dll
if %OS%==64BIT %windir%\syswow64\regsvr32.exe xxx.dll
2、设置IIS在32位下运行。
打开IIS应用程序池,在对应的程序池上右键--高级属性,把“启用32位应用程序”设置为true。
如果可以了,恭喜你。还不行的话,再进行第三步吧。
3、在iis中重新注册32位的.net framework。
C:\windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -i
如果还用到其他的版本,在相应的目录下都重新注册一遍。
重启IIS,成功!