我已经做好了"客户"程序,组件程序,代理/存根DLL,并且在本机上运行完全成功,即:已经完成"客户"通过COM库,使用代理/存根DLL,来对组件程序进行勾通.现在,我想把这一套东西,做成DCOM,该如何修改注册表(或者使用DCOMCNFG)?我已经按照书上的介绍进行了修改,但是两台机器不能连接上,出错代码是0X 80080005,这一般表示什么意思?!同时,我还需要考虑“两台机器是否是一个NT域”或者“用户权限”的问题吗?如果考虑,该如何设置??希望有热心朋友帮帮忙,分不够,可再加!!

解决方案 »

  1.   

      我做过这样的工作,现在记不太清楚了,你可以到<COM/DCOM编程指南>一书中去找答案,书上详细讲授了实现方法。
      

  2.   

    你可以用_com_error查看错误原因
      

  3.   

    我建议你用ATL做这个改动,用向导生成一个service,然后把你的COM的代码加入进去,这样应该是最简单的方法
    至于DCOM权限:
    在常规中的身份验证级别中验证,
    无:没有验证,
    连接:启动时候验证
    呼叫:调用接口时验证
    数据包:当有数据包流动时都验证
    数据包隐私:不仅每次流动都验证,而且要进行数据包加密然后再定义访问权限:
    访问用户权限
    启动用户访问权限这样应该就可以了
      

  4.   

    你应该注册组件yourcom.exe -RegServer然后注册你的代理/桩然后用dcomcnfg配置你的组件,把各种权限设为最低就可以了一般在windows 2000下,不需要相同帐户也可以启动com远程组件了
      

  5.   

    谢谢各位朋友!!可是我已经注册了组件,并且在本机上运行没有任何问题了.就是移动到二台机器的时候,死都不成功.而且,我已经按照各位的指导,把权限设置为最低了.我做测试的2台机器:
    A: WinMe,是域成员,做服务器
    B:WinXP,是同名工作组成员,做客户端.会不会是因为B机器没有加入域,而只是工作组,所以不成功??!!希望大家再多指教!!!
      

  6.   

    DLL加入到域的COM+服务中
    EXE 是DCOM用的.
    也可以用librastar2001(librastar
    的方法 DLL必须运行在一个服务中
      

  7.   

    查Error Lookup, 得0x80080005, 服务器运行失败.用WinME作服务器,还敢跨域,自找麻烦.
      

  8.   

    TO: linghuye(令狐叶)
    那么,现在我应该如何修正呢?TO:flyingjust(just) 
    我没有使用DLL,我所使用的DLL,是 代理/存根DLL,这是应该需要的呀。对吗?