在64位IIS下,网站使用32位COM组件导致“800a01ad” ActiveX component can't create object错误的问题...

总是要面对一些老ASP系统升级到ASP.NET的问题,由于各种原因,目前需要将ASP 和ASP.NET 整合到一个项目里使用。由于开发机是64位Windows 7,自然配备了64位IIS,将原来老系统的COM组件注册之后,在IIS上运行ASP代码的时候,在创建COM组件对象处,产生如下错误:

Microsoft VBScript runtime error '800a01ad' 

ActiveX component can't create object 

经过一番摸索之后,利用强大的Process Monitor 工具,监控w3wp.exe的操作,发现它试图在类似HKCR\CLSID\路径下寻找COM组件信息,但是因为COM是32位的,所以其被注册到HKEY_CLASSES_ROOT\Wow6432Node\CLSID\这样的位置,而在寻找时,应该寻找HKCR\Wow6432Node\CLSID\这个位置才会找到。

那么怎么让IIS找到正确的COM信息位置呢?办法就是让IIS可以工作在32位模式下,具体方法是,找到网站所使用的App pool,然后选择“Advanced Settings”,然后设置“Enable 32-Bit Applications”为true就好了。设置后,再监控w3wp,发现现在已经在HKCR\Wow6432Node\CLSID下面寻找COM注册信息了,因此问题得以解决。

转载于:https://www.cnblogs.com/Ricky81317/archive/2011/05/30/2063412.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值