我用三层技术开发,但服务器与用户之间有防火墙。且经过端口转换,
请问各位高手。DCOM的应用中,需要开放那几个端口,用户端才能正常访问
应用服务器?急,在线等。解决立刻给分。

解决方案 »

  1.   

    DCOM 的端口是动态分配的,这也导致 DCOM 很难穿越防火墙。建议改成 SocketConnection 进行连接
      

  2.   

    改成 SocketConnection 搞定
      

  3.   

    我写的是COM+组件,只能用DCOM,怎么办?
      

  4.   

    DCOM的端口是动态的,而且范围比较大,所以一旦有端口给封住的话就会出错,还是用SOCKET好一点,要不然用COM+的静态库进行编程
      

  5.   

    wangxj333(天天真人):    COM+ 组件一样能够用 SocketConnection 连接
      

  6.   

    哦,请leapmars(流铭) 大侠指点,不胜感激!
      

  7.   

    SocketConnection是一个tunnel,不是DCOM代理,COM+也可以用
      

  8.   

    DCOM在进行配置时可以限定端口范围的
      

  9.   

    用 SocketConnection 连接 COM+ 组件的方法,跟连接 DCOM 服务器是一样的只不过需要 override COM+ 组件的 Factory 的 UpdateRegistry 方法,主要是添加 EnableSocketTransport 这个调用。你看看 EnableSocketTransport 和 Scktsrvr.exe 的源码就知道怎么回事了。
      

  10.   

    呵呵,我在客户端是这样创建组件的:
    MyInterFace := coMyInterface.CreateRemote(MachineName);
    我如何能改变组件连接中间层的协议?