X64上的IIS調用32位的DLL方法
ASP.NET程序在编译的时候默认是Any CPU,即编译的程序可以在X86、X64系统平台上运行。若希望我们的ASP.NET程序运行在X64系统上,我们所要做的仅仅是部署IIS,修改配置。
若想程序运行于IIS32位模式下,即运行在.net framwork32位下进行如下配置:
1.cscript %systemdrive%/inetpub/adminscripts/adsutil.vbs set w3svc/appPools/enable32bitapponwin64 1 修改IIS配置,允许32位程序运行
2.C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis -i 为IIS注册asp.net32。注册后在IIS的web扩展里显示的是Asp.net2.0.*32bit。
3.Web扩展里允许 Asp.net2.0.*32bit运行。运行的是w3wp32.exe进程。
二.64位模式
1.cscript %systemdrive%/inetpub/adminscripts/adsutil.vbs set w3svc/appPools/enable32bitapponwin64 0 默认就是0,若原来运行了32位程序,则需要重新设置为0。
2.C:/WINDOWS/Microsoft.NET/Framework64/v2.0.50727/aspnet_regiis - i 为IIS注册64为Asp.NET。注册了64位ASP.NET的IIS在Web扩展里显示的是Asp.net2.0.*。
3.Web扩展里允许 Asp.net2.0.*运行。运行的是w3wp.exe进程。
处理后还是没有出现“w3wp32.exe进程”。
但我的 Web扩展里面是有, Asp.net2.0的32位设置为允许的。
后新建了应用程序池, 在新建的应用程序池的“高级设置”里面,把“启用32位应用程序”设置为true。
程序可以运行了。
因为我的机器已经设置过,cscript %systemdrive%/inetpub/adminscripts/adsutil.vbs set w3svc/appPools/enable32bitapponwin64 1 为32位。
为了测试,我又把它设置为64位:cscript %systemdrive%/inetpub/adminscripts/adsutil.vbs set w3svc/appPools/enable32bitapponwin64 0
此时,程序还是可以运行。
所以我认为:不用按照上面的1,2,3步设置开启32位。仅仅设置应用程序池中“启动32位应用程序”为true。此时应该就可以运行32位的程序了。
如果有人在X64位系统上,运行32位的asp.net程序,可以直接试试用把“启用32位应用程序”设置为true。的方法。无论是否成功,请告知。谢谢。