用SAP2007DIAPI开发的程序,在32位系统下好用,64位系统下不好用的对策

这两天把一个web程序发不到windows server 2003(64位)服务器,结果链接sap B1的di时出了错误提示

“检索 COM 类工厂中 CLSID 为 {632F4591-AA62-4219-8FB6-22BCF5F62007} 的组件是失败,原因是以下错误:80040154”

 

检索注册表,发现这个组件是 SAPbobsCOM.dll相关的(调试代码也是在调用这个的时候出的问题)

 

经过调查发现,64位的ASP.NET2.0不支持这个组件。那就只好改在32位的ASP.NET2.0下运行。由于

windows server2003的iis6默认是支持64位,而且32位和64位不能同时运行,所以需要如下设置

 

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位,还原为64位的话,按照以下操作

 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 的状态设置为允许。

同样在执行的时候,要将v2.0.40607改成你的服务器中对应的2.0的版本。

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

经过了两天的调查,终于解决了问题,写下来,留着备用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值