自己用C++做的COM服务器,在两台WIN SERVER 2000下,使用DCOMCNFG命令对该COM服务器做了同样的配置,COM客户调用COM服务器的方法时,在一台机器可以正常使用,但同样的客户程序使用另一台机器上的COM服务器时,客户程序出现“死机”现象或者出现“加载类型库或动态库时出错”的信息,请问高手,是什么原因。可以给50分

解决方案 »

  1.   

    这可能与安全配置有关系。我遇到过类似的问题,后来参照delphi的大富翁论坛上的一个帖子,将所有的安全级别均设为最低,就通过了。要想设置合适的安全级别,还得慢慢摸索。以下是那帖子的内容:1. 运行NT服务器上的dcomcnfg程序,进行DCOM配置。
      2. 进入DCOM的总体默认属性页面,将“在这台计算机上启用分布式COM”打上勾,将默认身份级别改为“无”。
      3. 进入DCOM的总体默认安全机制页面,确认默认访问权限和默认启动权限中的默认值无EveryOne,如果不去掉EveryOne,应用服务器不能正常启动。
      4.在常规页面中,双击你的应用服务器,打开你的应用服务器DCOM属性设置。
      5.将常规页面中的身份验证级别改为“无”。
      6.位置页面中选上“在这台计算机上运行应用程序”。
      7.将安全性页面设置中,均选择“使用自定义访问权限”,编辑每一个权限,将EveryOne加入用户列表中。
      8.身份标识页面中,选择“交互式用户”。
      9.NT的GUEST用户不能禁用。
      

  2.   

    不知你的客户机上如何配置,我用如下步骤可以通过:1。在客户机上用regsvr32注册代理DLL,再在客户机上运行一次组件程序
    2。将客户机上的组件程序删除或更名,再用regedit搜索包含组件程序名(***.exe)的项,将它们删掉,主要是要删一个localserver32的项,
    3。再用dcomcnfg将对应的组件运行位置设为服务器,还要将客户机上的默认身份验证级别改为无(如果采用默认的“连接”的话,会出现权限不够的情况)
      

  3.   

    我所碰到这种情况的解决办法是,网内要有一个域服务器,没有域服务器好像不行。然后每台客户端都加入域中,用域用户名登陆。然后再用Dcomcnfg配置组件的权限。不知道和你情况一样不一样,你可以参考一下
      

  4.   

    我需要知道你的很多細節!如果有疑問email: [email protected]
      

  5.   

    “加载类型库或动态库时出错”------是不是因为你的可执行文件是DEBUG版本的缘故!!!