跳楼中 !!!!!! ( 积分: 200 )

  • 主题发起人 主题发起人 马铭谦
  • 开始时间 开始时间

马铭谦

Unregistered / Unconfirmed
GUEST, unregistred user!
完了,今天就是最后期限,还没有什么进展,大侠们、兄弟们救人吧,再弄不出来我就跳楼了!!!! 大家帮帮我把,在internet中调用 com+对象出现RPC服务器不可用(在局域网内一切正常,DCOM SCOKET WEBCONNECTION 都用过了),谢谢了,一直在线等
 
完了,今天就是最后期限,还没有什么进展,大侠们、兄弟们救人吧,再弄不出来我就跳楼了!!!! 大家帮帮我把,在internet中调用 com+对象出现RPC服务器不可用(在局域网内一切正常,DCOM SCOKET WEBCONNECTION 都用过了),谢谢了,一直在线等
 
COM+好象用的随机端口,穿不过防火墙
 
在internet上要使用SocketConnection才行呀。
 
ysai,你的意思com+不支持intenet调用吗,哭死我了,请详细说说
 
我看过相关文章,说是有办法在internet上使用com+
我没试过,你可以去google上搜索相关文章
好象很复杂的说...就算能连,那该死的NT验证机制也会让你配置得发疯
建议还是用socketconnection,只需要在服务器运行一个服务,开放一个端口而已,客户端修改也很少,配置也简单
 
socketconnection无法穿越防火墙吧
 
首先感谢ysai及所有楼上的兄弟
我想说一下,我的做法是 :有一个协调对象被客户端直接调用,这个协调对象在调用服务器里的其他对象,为客户端实现具体功能,在这个协调对象里没有任何Dcom、Socket、WEBConnection组建,所以我想更使用任何Connection组建无关,且在实际中我在局域网客户端在服务器没有设置dcomcnfg情况 就能正常访问服务器(Windows003),经过ysai指点我想是《该死的NT验证机制》的问题,兄弟你们说呢,谢谢了
ysai,你有qq吗,能不能通过QQ联系
 
转一篇文章吧,希望能对你有所帮助,另,我已经好久没用DELPHI了,机器上连个pas文件都没有,所以就算有我的QQ也不能提供多大帮助
//==========================================================================
给猛禽大虾的信:
......现有以下困惑,提出来希望得到你的指点,也可以大家一起探讨一下,以求共同提高!
1、 大家知道目前流行的分布式核心技术主要有三种(也即三种组件模型):微软的DCOM/COM+、OMG的CORBA、SUN的EJB。Borland公司的透明中介引擎MIDAS(BCB6以后改名为DataSnap)可以使用的通讯协议有以下几种:DCOMConntection(DCOM协议)、SocketConnection(TCP/IP协议)、WebConnection(HTTP协议)等等。应用程序服务器端是一个RemoteDataModule(分布式COM对象、OLE自动化对象)。那么我感到困惑的是,如果我使用SocketConnection(或WebConnection)的话,我用的算是哪种分布式核心技术呀?是DCOM吗?为什么?
2、 请看下面两段文档:
(1) DCOM动态的选择1024~65535之间的网络端口,在这些端口上Internet和Intranet之间的通信是不被允许的,所以不可能在Internet上可靠的使用DCOM通讯协议(尽管它在Intranet上表现的很完美)。此外,DCOM要用135端口实现一些重要的功能,而通常安装的防火墙要限制135端口的访问。(摘自MSDN英文版)
(2) DCOM是使用RPC进行通讯的。利用RPC功能进行通信时,就会向对方电脑的135端口询问可以使用那个端口进行通讯。这样,对方的电脑就会告知可以使用的端口号,实际的通讯将使用这个端口来进行。135端口起的是动态的决定实际的RPC通讯使用的端口的端口映射功能。(摘自一网络安全文章)
由文档1可以看出DCOM在Internet上表现不佳的原因,但我现在更感到困惑的是:DCOM到底能不能运行在Internet上?我们以前曾做过一个软件系统也是用DCOM,那时是运行于VPN环境里;但现在这个是要运行于Internet上呀,不知道能不能行得通???如果行的话,是否需要其他支持???
由文档2可以看出DCOM不能穿透防火墙得原因——即一般防火墙封了135端口。有没有哪位高手有什么解决方案可以绕过防火墙?
3、 现在我们用的是DCOMConnection,需要进行安全配置,DCOM的安全配置是比较麻烦的,将来产品卖出去,当然不会让用户自己去配置的,所以我们要把这种配置通过编程实现。讲解这方面技术的书籍比较少,只找到了一本。不知大虾有成功案例可以让小弟借鉴一下???
4、 其实,我们系统的安全需要并不是太高,所以我想改成SocketConnection,这样简单一些,也不用担心那么多事了;但在网上论坛看到的大家议论纷纷,意见不一,说用SocketConnection系统会很不稳定。也不知道不稳定到什么程度???我想知道你现在在用DCOMConnection还是SocketConnection,还是WebConnection???
回信:
天涯浪子,您好!
1、流行的的确是主要就这三种,BORLAND的MIDAS主要是基于MS的技术(因为WINDOWS平台的缘故)。DCOMConnection是基于DCOM的ORPC的,SocketConnection/WebConnection其实只是一个代理,把ORPC通过TCP/HTTP转换为本地COM调用而已。所以本质上还是DCOM。包括早先MIDAS支持的CORBA,其实也是通过CORBA的DII来代理DCOM请求而已,不是真正的CORBA应用。还有新的SoapConnection也是,只是用SOAP来代理DCOM请求而已,但在这里把原来依赖于DCOM的VARIANT类型的ClientDataSet数据包改成了通用的XML数据包,并在Linux下实现了新的独立于平台的ClientDataSet,实现了通过Kylix进行跨平台MIDAS开发,当然目前还仅限于客户端。
2、135-137等几个端口是Windows用于实现RPC和Windows本身的安全机制的,DCOM的ORPC也是基于RPC的,所以它的实现也要依赖于这些端口。因为Windows本身的安全机制还是比较脆弱的,所以一般连在Internet上的LAN都会在防火墙上关闭这些端口,并且一般只会开放几个需要用得上的端口,而不可能开放所有端口,这样的话,DCOM需要的135端口不能用就不能确定通信所需要的动态端口,而且即使开放了135也不够,由于不知道它会用什么端口进行RPC,又不可能全部开放,所以RPC还是不能进行,这就是DCOM不能用于Internet的原因。VPN等于是一个虚拟的远程LAN,可以就当作LAN(因为VPN的Tunnel中一般可以把全部端口打开,没有关系,Internet访问是进不了Tunnel的),当然可以用。但如果要直接用于Internet,唯一的办法就是打开防火墙的所有端口,那防火墙就形同虚设,所以是行不通的。这不是高手的问题,是安全的问题。
3、DCOM的安全机制完全依赖于Windows的域用户管理机制,在实际应用中很不方便,不只是配置的问题,很多用户的网络根本就没有域,这样DCOM就没法用了。要编程进行安全配置的前提是要能连通,那就要降低DCOM的安全级别,开放WINDOWS的安全验证,但在很多情况下,DCOM即使用GUEST也连不通,这种情况下用编程来进行安全配置也就没有意义了。
4、如果安全性要求不高,用SocketConnection是最好的,也是我用得最多的一种方式。不过它还是有一些问题的,比如对Callbacks的支持就有问题,还好我从来不用Callbacks,所以一般把SocketConnection的SupportCallbacks设置为false,情况就好很多。当然,除此之外,对不同的应用情况,还会有一些其它的问题,这就需要修改Scktsrvr和Socketconnection的源码,基本上都是可以解决的,比起DCOM来说,还是要好很多。不过即使安全性要求不高,也最好做一些简单的保护措施,最简单的就是修改SocketConnection的端口号,改一个较大的数,不要用默认的211。另外就是用Intercept,那就看你的水平了,想做到多安全都可以。
       致
礼!
        猛禽
        raptorz@163.com
          2003-03-11
 
转:
Com+在使用时需要进行用户的验证,当你在局域网里的时候,由于的所有的
机子都是在一个域里,他默认的所有的域成员都有权利访问,你如果要在广域网
上使用,你必须在服务器上建立客户端的用户,然后,把该用户添加到你的com+
的角色当中,就可以访问了!
引自:http://blog.csdn.net/xiangding/archive/2004/12/01/200888.aspx
 
ysai,好好好,好文章,头等奖非你莫属了
我在试试
同时看看别人还有什么不同意见,谢谢了
 
虽然看了这些文章心理还是没底
我想大多数人调用Com+对象的方法:是用的是客户端中的DCOM、SOCKET、WEB CONNECTION组建调动服务器中的COM+ Data MODULE对象,而我是在客户端中利用CreateRemote('Ip')先建立服务器中负责协调工作的COM+对象,再用协调对象调用服务器中的COM+功能对象,由于是客户端先是自己建立远程服务中协调对象所以说应该不能绕开RPC服务吧,也就是说不能在internet中实现远程COM+对象吧
 
果然 ,不出所料 还是不好使,大侠们 继续指点呀!!!
 
com+在Internet上不好使,sockconnection会好一些
 
帮你顶一下
我也想搞清楚这个问题!
 
问题在大富翁不能登陆前自己已经解决,并且没有修改我的源程序,只是得设置操作系统,我要说的是dcomconnection可以用在intenert上,所谓的不能用只是设置的事,感谢大家支持一会散分!!![:D]
 
多人接受答案了
 
后退
顶部