在64位Windows上运行32位应用程序[iis]

来源:互联网 发布:视频转换手绘软件 编辑:程序博客网 时间:2024/05/17 23:26

在64位Windows上运行32位应用程序

Win2003SP164位版的系统, 使用WOW64来运行32位的应用程序,包括IIS 6.0运行32位WEB应用程序。

 

在64位Windows上,32位的进程无法加载64位的DLL,同样64位的进程无法加载32位的DLL。
因此如果需要在64位系统上的IIS中运行32位的WEB应用,则必须对IIS进行配置,
使其创建32位的工作进程,以运行32位WEB应用。
只要IIS能创建32位工作进程,以下类型的32位IIS运行程序代码,便可在64位系统的IIS中运行:

• Internet Server API (ISAPI) extensions
• ISAPI filters
• Active Server Page (ASP) applications
  (specifically, scripts calling COM objects where the COM object can be 32-bit or 64-bit)
• ASP.NET applications

由于CGI应用运行在独立的进程空间中,因此64位IIS能直接执行32位的CGI程序。


在配置64位IIS以运行32位应用之前,需注意:

• 64位Windows系统中,只有在独立工作进程模式下,IIS才能支持32位的工作进程。
• 在64位Windows系统中, 只有WWW服务能运行32位或64位工作进程,
  其他如IIS Admin Service、SMTP服务、NNTP服务、FTP服务都只能在64位进程下运行。
 
• 在64位Windows系统中, 同一台服务器上的WWW服务不支持32位和64位工作进程并发运行,
  即IIS只能配置成运行32位应用,或者只能运行64位应用。

64位IIS运行32位web应用配置完成后,IIS将32位的DLL和ISAPI存放到%windir%/syswow64/inetsrv目录中。
其他所有的IIS文件包括MetaBase.xml文件,被存放到%windir%/system32/inetsrv目录中。
对System32及其子目录的文件访问,将根据应用的位码被透明地重定向到其对应的目录中。
对于原有的应用程序有特殊的32位文件访问需求而运行失败,
查看该应用所引用的文件是否位于%windir%/syswow64/inetsrv目录以解决相应问题。

 


Configuring IIS to Run 32-bit Applications on 64-bit Windows (IIS 6.0)
配置IIS,实现64位IIS运行32位WEB应用
 

1. 打开命令行定位到 %systemdrive%/Inetpub/AdminScripts目录.
 
2.键入并执行以下命令:

cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 "true"
 
3. 如果需要恢复到运行64位应用则:
cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 "false"

 

原创粉丝点击