我爱Aspx >> Asp.Net >> Microsoft .NET Remoting:技术概述
Microsoft .NET Remoting:技术概述
- :未知 Դ:internet :2007-5-5 19:51:00 ؼ:.net
- 时,从 RealProxy
导出的类可以获得网络中服务器的负载信息,并将该调用路由到适当的服务器。简单地为所需的 ObjectURI 从通道请求一个 MessageSink
,并调用 SyncProcessMessage
或 AsyncProcessMessage
以将该调用转发至所需的远程对象。当调用返回时,通过调用 RemotingServices
类的 PropagateMessageToProxy
将返回参数推回到堆栈中。 下面的代码片断显示了如何使用导出的 RealProxy
类。
MyRealProxy proxy = new MyRealProxy(typeof(Foo)); Foo obj = (Foo)proxy.GetTransparentProxy(); int result = obj.CallSomeMethod(); 上例中获取的 TransparentProxy
可以被转发到另一个应用程序域中。当第二个客户端试图调用代理上的某个方法时,远程处理框架会尝试创建 MyRealProxy
类的实例,并且如果程序集可用,所有的调用都会路由至此实例。如果程序集不可用,调用会路由至默认的远程 RealProxy
。 通过为默认的 ObjRef
属性 TypeInfo
、EnvoyInfo
和 ChannelInfo
提供替代,可以很容易地自定义 ObjRef
。下列代码显示了如何进行自定义:public class ObjRef { public virtual IRemotingTypeInfo TypeInfo { get { return typeInfo;} set { typeInfo = value;} } public virtual IEnvoyInfo EnvoyInfo { get { return envoyInfo;} set { envoyInfo = value;} } public virtual IChannelInfo ChannelInfo { get { return channelInfo;} set { channelInfo = value;} } } 通道
通道用于在远程对象之间传输消息。当客户端调用某个远程对象上的方法时,与该调用相关的参数以及其他详细信息会通过通道传输到远程对象。调用的任何结果都会以同样的方式返回给客户端。客户端可以选择“服务器”中注册的任一通道,以实现与远程对象之间的通讯,因此开发人员可以自由选择最适合需要的通道。当然,也可以自定义任何现有的通道或创建使用其他通讯协议的新通道。通道选择遵循以下规则: - 在能够调用远程对象之前,远程处理框架必须至少注册一个通道。通道注册必须在对象注册之前进行。
- 通道按应用程序域注册。一个进程中可以有多个应用程序域。当进程结束时,该进程注册的所有通道将被自动清除。
- 多次注册侦听同一端口的通道是非法的。即使通道按应用程序域注册,同一计算机上的不同应用程序域也不能注册侦听同一端口的通道。
- 客户端可以使用任何已注册的通道与远程对象通讯。当客户端试图连接至某个远程对象时,远程处理框架会确保该对象连接至正确的通道。客户端负责在尝试与远程对象通讯之前调用 ChannelService
Ҷƪл˵?
- һƪDirectX 8.0 简介
һƪ简单JSP语法
- 关于我们 | 广告服务 | 网站建设 | 版权申明 | 申请链接 | 联系我们
- Copyright © 2007 5iaspx.COM. All Right Reserved.
- 本站内容仅供学习,研究,探讨,个人收藏,如有侵权,敬请联系我们,我们尽快解决!