德育量化管理系统

特色功能

ASP技术

在64位windows server 2003的IIS6或2008服务器上注册运行32位的dll或.net程序

作者:admin 来源: 日期:2014-10-28 14:50:10 人气: 标签:
在64位系统里注册32位软件所需的一些dll会提示不兼容,大概因为32 位进程不能加载64位Dll,64位进程也不可以加载32的导致。

若要支持的32 位和64 位COM 注册和程序共存状态,需要WOW64 子系统。

故可以把这些32的dll、ax从C:\Windows\system32\复制到C:\Windows\sysWOW64\下注册即可。

如:regsvr32 C:\Windows\sysWOW64\MakerCom.dll
———————————————————————————————————————————————————————————
分割线
———————————————————————————————————————————————————————————

今天在101医院部署WCF应用程序的时候遇到了问题,医院的环境是64位windows server 2003,而我们的程序中有32位的Dll,所以出现了异常,如果在Server 2008 R2只要在应用程序池启动32位模式就好了,但是在2003的环境下还需要一点折腾。

1.命令行键入:

cscript.exe %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

即设置IIS6允许32位程序运行在64位机器上

如果想在改过来的话,直接在命令行键入cscript.exe %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0

2.重新注册.net frameWorks

%SYSTEMROOT%\Microsoft.NET\framework\v2.0.50727\aspnet_regiis.exe –i
 
3.完成之后,看Web服务扩展,应该会多出一个32位的asp.net将其设置为允许,缺点:这样会使整个IIS上的所有站点都以32位兼容方式运行 。
后续:如果服务器上既有.NET2.0又有.NET4.0,那么需要卸载一个,IIS6好像默认使用的是2.0.
下一篇:没有资料