你的第一种方法当然可以,但如何是用DCOM实现分布,必须在服务器dcomcnfg.exe 设置用户是否有权使用com component, client端必须用有权限的用户登录服务器。

解决方案 »

  1.   

    你可以把组件放在网内任何机器上。但一定要做这样的工作:
    1、在做组件服务的机器上安装DCOM(win98) (2000是com+,默认安装)
    2、把组件在dcom(或com+)中注册,并产生安装包(右键点击dcom文件夹,选exprot...)
    3、把安装包安装在客户机
    4、set objXXX = CreateObject("组件名.类名")
    当然,用户必须有权限使用组件所在的机器的资源
      

  2.   

    谢谢huanggx:
    不过我还有一个疑问:书上说,在createobject时候,可以直接指向服务器
    即:set objXXX=CreateObject("组件名.类名","服务器名")
    但是如果:
      1、我不再客户机上安装组件安装包,出现错误:类在机器上没有注册;
      2、如果我安装了安装包,出现错误:自动化错误
    这样的话,只能如此调用:set objXXX=CreateObject("组件名.类名")
    我的理解,这样的话,是调用客户机上的组件而不是服务器上的组件了,不知是否?
    还请大虾多多指点,谢谢
      

  3.   

    1、在你本机上只续运行服务器上导出的*.msi文件
    2、set objXXX=CreateObject("组件名.类名")是在本机运行,安装COM+包时,应把以前的删掉。
      

  4.   

    如果组件分布在不同的服务器上的话,是否只能安装*.msi文件
    然后,createobject一个本机的对象?
    COM+的分布式是如何实现的?
    谢谢各位了
    叩首,叩首
      

  5.   

    Com组件编译时需要设置部件选项(远程服务器文件),使编译时产生客户端所需的类型库(*.tlb)和远程注册文件(*.vbl),然后在客户端注册类型库(Regtlib TLB文件名),导入远程注册文件(clireg32 VBL文件名)