64位环境启用ASP.net 2.0的32位扩展(转)

但在安装同样软件的x32的服务器上没有这个问题。


Google了一下,主要是由于asp.net 2.0的64bit类库没有上述中的组件造成的。没办法,只好使用32bit的ASP.net 2.0来跑这个程序了。但这样,在IIS6环境下,不能同时启用32bit和64bit的ASP.net 2.0,没别的办法,暂时先这么接受吧。


具体来说,执行两个命令行程序,然后再从IIS的Web服务扩展中启用一下就OK了。摘录如下:


ASP.NET 2.0,32 位版本


要运行 32 位版本的 ASP.NET 2.0,请按照以下步骤操作:


1. 单击"开始",单击"运行",键入 cmd,然后单击"确定"。


     2. 键入以下命令启用 32 位模式:


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


     3. 键入以下命令,安装 ASP.NET 2.0(32 位)版本并在 IIS 根目录下安装脚本映射:


%SYSTEMROOT%/Microsoft.NET/Framework/v2.0.40607/aspnet_regiis.exe -i


     4. 确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607(32 位)的状态设置为允许。


在执行的时候,要将v2.0.40607改成你的服务器中对应的2.0的版本。比如写这篇时候,我的电脑用的是v2.0.50727。


如果要取消32位版的启用,恢复到64bit的ASP.net 2.0环境,执行下面的步骤:


     1. 单击"开始",单击"运行",键入 cmd,然后单击"确定"。


     2. 键入以下命令禁用 32 位模式:


cscript %SYSTEMDRIVE%/inetpub/adminscripts/adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0


     3. 键入以下命令,安装 ASP.NET 2.0 版本并在 IIS 根目录下安装脚本映射:


%SYSTEMROOT%/Microsoft.NET/Framework64/ /aspnet_regiis.exe -i


     4. 确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607 的状态设置为允许。


微软官方来源:http://support.microsoft.com/kb/894435


原文总说这个方法只对内部版本v2.0.40607适用,不过我在v2.0.50727切换到32bit之后也没有出现什么问题。如果是其他版本的,大家可以掂量着用。

-----------------------------以下为本人总结——————————————————

在64位系统下,如果切换成了32位模式,那么oracle、oledb之类的也要相应的有所改变。

你可能感兴趣的:(asp.net,扩展,web服务,IIS,internet,64bit)