我正在学习com编程,今天写了一个com服务器和配套的客户端程序,当客户端程序与com服务器在同一台机器上运行时,客户端可以连接到服务器上,但是当我把客户端放到别的机器上运行时,却出现了“拒绝访问”的错误(我的客户端连接服务器的代码是CoXXXXClass.CreateRemote('MachineName'))。请问这是什么原因?如何解决?是不是com服务器一定要安装在域控制器上,要访问这个com服务器的机器一定要先登陆该域,这个客户端程序才能访问呢?请各位高手帮忙解答,谢谢。

解决方案 »

  1.   

    转:
    DCOM配置  如果在Windows NT环境下正常运行应用服务器,必须进行DCOM配置。配置方法如下:  1.运行NT服务器上的dcomcnfg程序,进行DCOM配置。  2.进入DCOM的总体默认属性页面,将“在这台计算机上启用分布式COM”打上勾,将默认
    身份级别改为“无”。  3.进入DCOM的总体默认安全机制页面,确认默认访问权限和默认启动权限中的默认值无EveryOne,
    如果不去掉EveryOne,应用服务器不能正常启动。  4.在常规页面中,双击你的应用服务器,打开你的应用服务器DCOM属性设置。  5.将常规页面中的身份验证级别改为“无”。  6.位置页面中选上“在这台计算机上运行应用程序”。  7.将安全性页面设置中,均选择“使用自定义访问权限”,编辑每一个权限,将EveryOne加入用
    户列表中。  8.身份标识页面中,选择“交互式用户”。  9.NT的GUEST用户不能禁用。同样,你要把你服务器上的的midas.dll考到客户机器的system目录下才行
    同时运行一下regsvr32 midas.dll
      

  2.   


    7.将安全性页面设置中,均选择“使用自定义访问权限”,编辑每一个权限,将EveryOne加入用
    户列表中。

    为什么?
    为什么不可以直接指定用户?而不是everyone?
    如果加入everyone,那岂不是太不安全了?密切关注
      

  3.   

    不加入everyone也可以,
    把需要启用服务器的用户定义到一个用户组,在启动权限里加入这个组就可以!
    我的大概是这样,不知我有没看错!