在最近的工作中,引用了一个外部的组件,然而由于那个外部组件只能在32位环境中运行,当我们的程序布署到64位的环境中时,就不能工作了。由于那个组件是在服务中引用的,我们的服务是宿主在IIS中的,而这时的IIS是运行在64位的framwork上的。所以尽管我们把服务编成了32位的,还是不能正常工作,
经查找,知道需要修改IIS,让其运行在32位的framwork框架上,且IIS能运行32位的程序。
如下是从microsoft的帮助中得到的。原文地址:
http://support.microsoft.com/kb/894435
ASP.NET 2.0,32 位版本
要运行 32 位版本的 ASP.NET 2.0,请按照以下步骤操作:- 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
- 键入以下命令启用 32 位模式:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
- 键入以下命令,安装 ASP.NET 2.0(32 位)版本并在 IIS 根目录下安装脚本映射:
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.40607\aspnet_regiis.exe -i
- 确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607(32 位)的状态设置为允许。
按如下修改后,即使我们的服务编成Any CPU的版本,也可能正常运行了。