本人写了一个小程序,调用google desktop搜索引擎的GoogleDesktopAPI,在初始化对象时asp.net抛出了一个异常,俺搞了小半天也没搞定。
在执行下面的初始化时:
GoogleDesktopQueryAPI queryAPI = new GoogleDesktopQueryAPIClass();
抛出以下异常:
System.Runtime.InteropServices.COMException: 从 IClassFactory 为 CLSID 为 {4E26495C-CA41-4085-96C4-8CA805AF297E} 的 COM 组件创建实例失败,原因是出现以下错误: 80040154。我用vs2005自带的那个web server上运行是没有任何问题的,发布到iis上之后,就抛异常了,怀疑是运行时安全导致的,但是搞了半天也没搞定。
我的欢迎是vs2005、winxp iis5.1。哪位大侠帮助解决一下吧,搞定立即结贴!

解决方案 »

  1.   

    80040154该是对象创建失败之类的东东,既然webserver下可以正常运行,会否和帐户权限有关
    可以在iis部署时做一下身份模拟试试看
      

  2.   

    运行dcomcnfg 找到这个组件,配置权限,或者先使用身份模拟试试
      

  3.   

    先看GoogleDesktopAPI的注意事项
    再看iis是不是有什么访问权限设置
      

  4.   

    俺基本上把该设置的权限都设置了,但是仍然不好用,iis5.1这个垃圾
      

  5.   

    试过了,身份模拟还是不能创建对象,但在vs2005的自带的web server就没问题,真是奇怪
      

  6.   

    搞一个开发环境试试.到同事的机子上试试.可能是IIS的问题!
      

  7.   

    是权限问题吧
    这是设置excel的,一样的COM,可能对你有用具体配置方法如下: 
    1:在服务器上安装office的Excel软件. 
    2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务" 
    3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置" 
    4:在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框 
    5:点击"标识"标签,选择"交互式用户" 
    6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限. 
    7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限. 
    这样,我们便配置好了相应的Excel的DCOM权限. 
    注意:我是在WIN2003上配置的,在2000上,是配置ASPNET用户 
      

  8.   

    在iis里的配置是2.0的吗?应该是IIS的问题
      

  9.   

    运行dcomcnfg 找到这个组件,配置权限,或者先使用身份模拟试试找到google com 组件,然后使用自定义安全,加入networkService 和 aspnet 用户 一共有三个要设置
      

  10.   

    这是windows 的安全问题,web service 跟 web application 权限是不一样的
      

  11.   

    这个问题微软有专门拿出来说的。上官方网站去看看吧
    http://support.microsoft.com/kb/175804/zh-cn
      

  12.   

    1、确认是否已经Regsvr32了该组件
    2、确认Network Service用户对组件dll的存放路径有读权限。
      

  13.   

    看看这个api有没有依赖项,拷到windows\system32
      

  14.   

    是不是注册过的啊
    com要注册的
      

  15.   

    可先通VS命令窗口将COM组件注册,然后在组件服务里找到设置属性:安全性,强制检查,进程级别和组件级别执行访问权限检查,启用身份验证