 |
本文相关内容 |
 |
|
|
|
|
|
| |
★多IP地址服务器使用Remoting Client Activated Object
|
|
|
多IP地址服务器使用Remoting Client Activated Object
|
| 添加记录:
网络应用
类别:
网络应用
发布日期:
2006.09.20
|
有的服务器有多个IP地址。这样的服务器host CAO的时候会有一个问题,Remoting Framework可能会将CAO绑定到一个错误的IP地址,例如公网的用户可能得到一个服务器在私网的IP,这样在调用CAO的方法时会失败。同样的情况也发生在一个Server Activated Object的方法返回一个MarshalByRefObject的时候。对于这样的情况,可以通过Channel的“bindTo”属性将一个Channel强制绑定给一个IP,例如公网IP,可是这样一来,私网的用户就无法使用同一个Channel了。
下面有几种解决方案:
1. 将Channel绑定到机器名(使用“machineName”),而非IP。但这样要求我们不同网段的客户都能通过同一个DNS名找到这个服务器。
2. 为服务器每一个IP都开一个Channel,并使用“bindTo”。
3. 通过服务器端的Sink取得Client端的IP,并通过手动配置的类似路由表一样的对应表,通过客户端的IP来选择一个正确的服务器IP。我们可以用TrackingHandler在服务器端Marshal MarshalByRefObject的时候用一个正确的IP。
How to get the IP address of the Remoting Client on Remoting Server
http://blog.joycode.com/felix/articles/39610.aspx
4. 通过服务器端的Sink以及Reflection,取得收到请求的服务器端地址,并通过TrackingHandler来指定正确的地址。
How to automatically bind the correct server IP address to a CAO ObjectRef under multi network adapter environment.
http://blog.joycode.com/felix/articles/47285.aspx
5. 使用一个SAO作为类工厂,给服务器端的SAO方法传一个该使用的服务器IP地址,然后同样通过CallContext来传递这个值给TrackingHandler。
这样的问题不存在于SAO中,因为SAO的地址都是在客户端指定的,而不需要在服务器端生成。 (出处:http://www.8s8s.net)
|
上一篇:独树一帜 创建“独立”的多操作系统 下一篇:多台电脑用一个帐号上网行吗?
|
|
|
 |
电脑常识文选风云榜 |
 |
|