知秋一叶

日出而作,日入而息,凿井而饮,耕田而食,帝力何有于我哉
随笔 - 55, 评论 - 311, 引用 - 79

导航

工具

标签

每月存档

广告



访客

 

.NET Framework自带的TcpChannel和HttpChannel不支持跨越防火墙的Event Callback。这是因为.NET内部的协议通道只支持单向通信,Callback和原始方法调用需要两个独立通道。Remoting要为事件回调的Session建立一个独立的协议通道,但是因为防火墙的关系没法得到Client的确切IP地址,这个Channel也就建立不起来。

Http在概念上不支持Push模式,这种设计算是可以接受。但这对于TcpChannel特别的不可思议,因为Client在初始化到Server的Remoting连接的时候已经建立一个可用的(穿越防火墙的)TcpChannel,为什么回调过程不能复用这个已经存在的通道呢?

解决的方法是编写一个可以双向通信的TcpChannel,这里有一个可用的共享版本。这里还有一个商业化(Read: $$$)的版本。

相关文章

Loading...

打印 | 张贴于 2003-09-17 00:36:00 | Tag:.NET

留言反馈

#DotNet Remoting中自带的Tcp和Http信道是无法使用事件的 编辑
园子里的Bruce Zhang(以前的wayfarer)写的Remoting文章很全面,开始学习时他的文章帮了很大的忙(在这里先谢了),他写的Remoting事件尤为精采,后来在一个项目中用到了Remoting事件,在本地调试一切正常,到后来部署的那一天,噩梦开始了,Remoting的远程事件无论如何都无法传递到客户端,一阵google之后,终于在博客堂知叶一秋的blog中找到了答案,以下的他的原话:
2007-09-11 11:12:00 | [匿名用户:t-mac.NET]
#re: Remoting、事件、防火墙 编辑
客户端机器的局域网是部队的网络环境,如果要访问外部的internet资源必须设置其代理服务器,并且每次访问网站时都要求输入用户名密码,但是我们的客户端程序却没有提供设置代理的功能。

请问如何在remoting访问远程服务器时使用代理

谢谢!

2004-09-23 16:10:00 | [匿名用户:cnet]
对不起,目前本随笔不允许发表新评论.

Powered by: Joycode MVC Blogger System