多IP地址服务器使用Remoting Client Activated ObjectWeb服务器教程
|
| 论文作者:佚名 论文来源:不详 论文发布时间:2006-6-18 21:14:48 论文发布人:chjchjchj |
减小字体
增大字体
有的服务器有多个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的地址都是在客户端指定的,而不需要在服务器端生成。
|
|
|
|
|
|
|
| ∷相关技术评论 |
(评论内容只代表网友观点,与本站立场无关!) [查看发表评论...] | |
|
|
| |
站内广告 |
| |
|
站内搜索 |
| |
栏目导航 |
| |
|
|
本月热门 |
| |
|
|
本日热门 |
| |
|
|
|