客户端TDCOMCONNECTION,都在外网,部分组局域网,部分分布很散各自联网
应用服务器和数据库服务器放在同一机器上(托管到电信机房)在上面情况下,请高手解答个问题,谢谢了.据说客户端连到服务器会被防火墙阻断,这个"防火墙"是指客户端的还是服务器端的?有没有办法解决,怎么解决?客户端机器除了安装客户端软件外,还需要做什么方面的配置吗?服务器端需要做DCOM方面的哪些配置呢?

解决方案 »

  1.   

    啊~~不好意思,问题没说清楚.
    我这个做的这个系统主要的作用就是添加、检索数据,应用服务器包含一些权限验证规则、登陆统计、在线状态检测等,绝大多数数据库的读写操作用存储过程完成。软件基本上就是信息录入、发布系统 + 简单的管理。打算把数据库和应用服务器放在一台机器上托管,客户端机器都在外网。
    之所以发出这个疑问,是因为见在论坛上对TDCOMCONNECTION贬斥多,对SOCKETCONNECTION赞扬多,对DCOMConnection的问题主要集中在几个方面:
    ①动态分配端口,所以相应慢,而且因为防火墙的原因,可能会造成客户端无法连接到服务器.我也考虑到打开防火墙的某个端口,但没有实践经验,所以也不敢肯定.
    ②客户端可能需要繁琐的DCOM安全配置。因为客户端主要面向对电脑操作不熟练的人,当初写软件的时候没有考虑过这个问题,也一直没有条件考虑这方面的问题。
    这方面的问题参见http://www.35dx.com/html/otherTec/6/otherTec6740.html,不过感觉原文的回复者没有真正解决提出的问题。
    还有什么我没说明白的地方请再提问,谢谢。
      

  2.   

    用我现在的现实情况来重新叙述这个问题吧.    ①我在内网(网管只开通8080端口)运行客户端。客户端用了TDCOMConnection,TClientDataSet等组件。
        ②应用服务器所在机器托管到机房,有固定IP。应用服务器用了TDataSetProvider等组件。    在上述情况下,应用服务器所在机器的RPC服务已经打开,并配置了DCOM属性:
      1.运行NT服务器上的dcomcnfg程序,进行DCOM配置。
      2.进入DCOM的总体默认属性页面,将“在这台计算机上启用分布式COM”打上勾,将默认
    身份级别改为“无”。
      3.进入DCOM的总体默认安全机制页面,确认默认访问权限和默认启动权限中的默认值无EveryOne,如果不去掉EveryOne,应用服务器不能正常启动。
      4.在常规页面中,双击你的应用服务器,打开你的应用服务器DCOM属性设置。
      5.将常规页面中的身份验证级别改为“无”。
      6.位置页面中选上“在这台计算机上运行应用程序”。
      7.将安全性页面设置中,均选择“使用自定义访问权限”,编辑每一个权限,将EveryOne加入用户列表中。
      8.身份标识页面中,选择“交互式用户”。
      9.NT的GUEST用户不能禁用。administrators用户的属性--隶属于里添加power users。    但是在这些做完之后,客户端仍然无法连接到应用服务器(DCOMConnection.ComputerName=IP地址)。在D7环境下,提示为:RPC服务器不可用。
        请问问题出在哪里?难道需要设置代理服务器吗?那怎么设置?