使用Remoting做类似于MSN的p2p项目中遇到的一些问题? 好像Remoting是无法穿越网关的,除非在网关上开端口映射;WebService 则是可以的. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 TO:Tigatron(Illidian)Remoting和WebService都是使用的HTTP作为协议,两者在机制上有颇多相似之处。怎么可能R不行而W可以。你有测试的例子吗? 不是不能穿透网关,而是那样的客户机在Internet没有自己的IP TO Fancimage(faci)对 就是这个原因?Remoting是通过Url访问的。在局域网内的Remoting对象没有Url。所以无法访问。有什么办法可以解决? 我也做过类似的程序,我在一个win2k的lan网络和internet上的pc间互相访问是可行的。不过没有设置网关。 简单的答案是:办不到!如果在firewall后面的是服务器,只要设置端口映射就没问题了。但是你现在的要求是把client放在firewall后面,然后要求server(或者其他client)回调client代码。.NET Remoting提供的缺省通道实现,callback不会使用已经建立起来的client->server通道,而是会由server重新生成一个server->client通道。只就要求server建立一个到client的连接... 你知道firewall的作用了,这样的连接是建立不起来的。 先打击了你一把,接下来是一线曙光: :)理论上说,如果我们抛弃.NET提供的通道,我们自己实现的通道完全可以采用client->server通道进行双向通信。由于建立联接的是client端,所以可以通过firewall,没有任何问题。Server也可以使用同一个通道进行回调...另一线曙光是:已经有人开发了这样的通道:http://www.ingorammer.com/Software/OpenSourceRemoting/BiDirTcpChannel.htmlIngo Rammer是.NET Remoting方面的绝对权威,虽然他声明这个通道只是试验品,在性能方面有问题,但是我相信一般的使用还是可以的。不过,这里只有一个Tcp通道,理论上也可以编写一个http的,但是他没有提供。所以如果要使用这个通道,你必须把Server从IIS里面车出来,并且改成使用Tcp通道。 to: qqchen79(知秋一叶 [MS MVP]) 因为看到您在其他关于Remoting的帖子中答复。所以有此一问。现在正在看您提供的连接。 to:Brunhild() 你说提及的WIN2k网络是通过什么方式上网的呢。不设置网关,也就是不设置代理服务器。那么w2k网络中的每一台机器都在Internet上有独立IP?这样当然是可以的。但是现在的网络环境一般都是设置代理或者网关,共享一根ADSL或者光纤什么的。我们公司的办公环境就是共享ADSL,代理软件使用的Sysgate4。0。 如果remoting客户端不能在局域网内运行。那么P2P项目使用Remoting技术来实现就完全没有针对意义了。总不可能要求你的客户使用你提供的软件时的每一台机器都在Internet上有独立IP吧? to: diabloyj(大菠萝)我的服务器通过ADSL上网,通过共享internet连接,让其他lan中的PC也可以访问。没有使用代理服务器。lan中的PC当然没有独立的INTERNET IP,他们是通过登记在HOST中的CALLBACK入口来互相访问的。 我使用了一下BiDirTcpChannel,可在Internet网的时候它总是自动关闭连接啊。 那个下载的package里面应该由实例代码吧?可以运行吗?Tcp连接应该不是自动关闭才对。那个东东恐怕别人搞不定,如果由问题的话,可以直接写email给[email protected]。 实例代码在局域网环境一切运行正常。可是当我把服务器架设在Internet上,客户端架设在通过网关(代理)访问Internet的局域网内的某pc时,new 服务器Remoting对象后通道就自动注销了。我试了知名对象,和客户端激活两种方式都是这样。 to: Brunhild() 看你的回复,我认为你的remoting服务器和你的remoting客户端都在同一个LAN中。(不知道是不是啊 :))Remoting服务器上装了双网卡(一个连接到ADSL猫,一个连接LAN)。 如果你不是这种网络环境,请把代码给我看一下。我在楼上说的“服务器架设在Internet上”指的是一台托管服务器,和我们办公LAN没有任何物理连接。 我的QQ:7182108欢迎大家有以教我。 "客户端登陆时向服务器注册RemotingClient。在以后的交流中就是客户端之间的点对点交流。"问一下你的点和点是怎么建立连接的,用.net framework 提供的 channel 连 ip 和 port 都得不到,你怎么建立连接呢? ip 都得不到,怎么和找到别的 peer 并建立连接? 用js写的省市县级联 修改页面获取以前选择的省市县 怎么不对呢? 各位大侠,用VS2008制作网页,预览时图片正常显示,但一运行,在浏览器图片就不显示啦,这是为什么呢?(图片是gif格式 关于文件复制的问题 windows服务问题 求解决socket连接异常导致断线 Form背景图片 请问如何在C# winform里面修改DataGrid某一行的背景色? 如何在WebForm中正确显示由Word2003自动生成的XML文件 继承Toolbar时遇到难题?急盼!!! VS2008为何修改发代码不会执行,还是执行原来代码。 .net 反编译服务 请问 C#中如何使用信号量(Semaphore)?
Remoting和WebService都是使用的HTTP作为协议,两者在机制上有颇多相似之处。怎么可能R不行而W可以。
你有测试的例子吗?
对 就是这个原因?
Remoting是通过Url访问的。
在局域网内的Remoting对象没有Url。
所以无法访问。
有什么办法可以解决?
理论上说,如果我们抛弃.NET提供的通道,我们自己实现的通道完全可以采用client->server通道进行双向通信。由于建立联接的是client端,所以可以通过firewall,没有任何问题。Server也可以使用同一个通道进行回调...另一线曙光是:已经有人开发了这样的通道:
http://www.ingorammer.com/Software/OpenSourceRemoting/BiDirTcpChannel.html
Ingo Rammer是.NET Remoting方面的绝对权威,虽然他声明这个通道只是试验品,在性能方面有问题,但是我相信一般的使用还是可以的。不过,这里只有一个Tcp通道,理论上也可以编写一个http的,但是他没有提供。所以如果要使用这个通道,你必须把Server从IIS里面车出来,并且改成使用Tcp通道。
因为看到您在其他关于Remoting的帖子中答复。所以有此一问。
现在正在看您提供的连接。
你说提及的WIN2k网络是通过什么方式上网的呢。
不设置网关,也就是不设置代理服务器。那么w2k网络中的每一台机器都在Internet上有独立IP?这样当然是可以的。
但是现在的网络环境一般都是设置代理或者网关,共享一根ADSL或者光纤什么的。
我们公司的办公环境就是共享ADSL,代理软件使用的Sysgate4。0。
总不可能要求你的客户使用你提供的软件时的每一台机器都在Internet上有独立IP吧?
我的服务器通过ADSL上网,通过共享internet连接,让其他lan中的PC也可以访问。没有使用代理服务器。lan中的PC当然没有独立的INTERNET IP,他们是通过登记在HOST中的CALLBACK入口来互相访问的。
Tcp连接应该不是自动关闭才对。
那个东东恐怕别人搞不定,如果由问题的话,可以直接写email给[email protected]。
可是当我把服务器架设在Internet上,客户端架设在通过网关(代理)访问Internet的局域网内的某pc时,new 服务器Remoting对象后通道就自动注销了。
我试了知名对象,和客户端激活两种方式都是这样。
看你的回复,我认为你的remoting服务器和你的remoting客户端都在同一个LAN中。(不知道是不是啊 :))Remoting服务器上装了双网卡(一个连接到ADSL猫,一个连接LAN)。
如果你不是这种网络环境,请把代码给我看一下。我在楼上说的“服务器架设在Internet上”指的是一台托管服务器,和我们办公LAN没有任何物理连接。
我的QQ:7182108
欢迎大家有以教我。