已经在世博局度过了近4个月的时间,无尽的加班,无尽的修改,都一步一步熬了过来,项目终于进入后期,部署了近200台客户端,真是一个体力活。

今天在一台Windows2003 server 64位系统上部署了一个基于ArcEngine的Webservice服务,死活无法运行起来,每次都在

IAoInitialize init = new AoInitializeClass();

catch到the COM class factory for component with CLSID {2237A429-E4AC-40D6-96A5-5B6CCF40D56B} failed due to the following error: 80040154.这个错误。一直以为是ArcEngine没有装好,或者是IIS调用Engine组件时的权限问题。

 

经过一番折腾,毫无进展,突然想到Engine是基于32位的组件,IIS在64位操作系统上是不是不能使用。在网上寻找一些资料后发现IIS在64位操作系统上可以切换32位和64位运行模式。

 

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.50727\aspnet_regiis.exe -i
4.
确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607(32 位)的状态设置为允许。

 

ASP.NET 2.0,64 位版本
要运行 64 位版本的 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\v2.0.50727\aspnet_regiis.exe -i
4.
确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607 的状态设置为允许。
将IIS切换到32位后,问题解决。

 

posted on 2012-08-08 23:07  GIS_A_ERP  阅读(403)  评论(0)    收藏  举报