我将中间层做成一个Com组件,在服务器端连接使用很正常,可为什么在远程用DCOM进行连接,总提示“类没有注册”的错误。我查了很多资料,也完全按资料说的进行配置(例如权限设置,客户端注册等等)始终不行。不过在远程用Soket进行连接则没有问题。
后来我将中间层改为exe类型,按原来的配置用DCOM则很轻松的就连上了,真是感到很困惑,希望各位高手给予指教。

解决方案 »

  1.   

    zdq801104(我很笨,但是我不傻!) ,你说说你是怎么用的啊。
    万分感谢。
    期待高手.........
      

  2.   

    需要设置一下DCOMCNFG,而且中间层服务器和客户端的都要设置。
      

  3.   

    没有用过
    只用过socekt觉得还是可以的 帮你up
      

  4.   

    把DLL形式的COM,安装进组件服务,也就是COM+,就可以让远程连接了。
    不管是COM还是其它什么,如果它是DLL,它是不能独立运行成一个进程的,
    只有EXE形式的,才能独立运行成一个进程。DLL形式的COM,在单机上调用它,是进程内调用,
    EXE形式的COM,在单机上调用它,是进程间调用。
      

  5.   

    halfdream(哈欠),你好,
    你说将把DLL形式的COM,安装进组件服务,请问如何安装。
    Dll形式的中间层和Exe形式的中间层有什么区别,具体说就是哪个更好一些。Dll可以共享进程是不是比Exe更好一些。
    用socket进行连接,性能比用DCOM高还是低。
      

  6.   

    这是使用BORLAND  TSocketConnection 连接方式
       
    client ========scktsvr自定义协议===========> scktsvr.exe
                                                | 
                                                |-进程内调用-->DLL 型COM
                                                \--进程间调用-->EXE 型COM
    这是使用DCOM 连接方式
    client ============RPC====================>EXE 型COM
      

  7.   

    这是使用COM+client ===========RPC=================>组件服务->dllhost.exe-->DLL型COM
      

  8.   

    根据别人测试结果,DCOM连接与TSOCKETCONNECTION连接效率仅有很小差别.
    DCOM配置麻烦,第一次调用时间很长,安全性较好.
    上面COM+我仅仅是画了一个示意图,其实可以有其它情况的.
    COM+是支持不只RPC这一种协议的,它还可以通过消息队列调用,为大型系统设计的..
    呵..不过很多大型系统,COM+ 仍达不到要求.
    把一个DLL型的COM,添加进组件服务,也就是成为COM+,很容易的.
    打开管理工具,组件服务试试就会用了.当然为了发挥COM+的能力,尽管普通COM组件可以加入组件服务,但适当编写的COM+组件,
    可以提供比DCOM多得多的服务能力.
      

  9.   

    中间层通常会采用一个客户一个线程,EXE方式是在自己内部多线程.
    DLL方式COM则是依赖它的HOST APPLICATION的多线程机制.DLL灵活些.至于COM在多线程下的安全性则由COM的套间机制保证.可以不在乎是EXE还是DLL.
      

  10.   

    halfdream(哈欠),你所说的又让我学到了很多东西,原来一些模糊的概念也清楚了很多,单看这些就知道你是一个高手,肯定搞过大项目,以后还要多指教啊,虚心向你学习。能不能说一下你的QQ或Email。
    TSOCKETCONNECTION使用比较方便,但听很多人说TSOCKETCONNECTION不是很稳定,连接一多就容易死掉。
      

  11.   

    TSOCKETCONNECTION 相对而言,确实不算是很稳定,但原因很多,也可能有应用服务器编写上的原因,也有它实现上的原因。
      

  12.   

    SCKTSVR.EXE 是采用EVENTSELECT I/O方式使用SOCKET,这种方式会受到WINDOWS EVENT最大数量限制.也许采用完成端口I/O方式改写它会好些..
    SCKTSVR.EXE调用DLL型的COM时候,是直接的进程内调用,这样这个DLL内部运行时的问题就有可能造成整个SCKTSVR.EXE死掉.
      

  13.   

    太好了, halfdream(哈欠)能不能再多讲一些,我觉的受益非浅。
    用DCOM连接,除了配置比较麻烦,其他还有什么限制吗,稳定性上是不是要好一些啊。
    我给你发的短消息收到了没有。再一次请求留个QQ号。