• λ我爱Aspx >> Asp.Net >> Microsoft .NET Remoting:技术概述
  • Microsoft .NET Remoting:技术概述

  • :未知  Դ:internet  :2007-5-5 19:51:00  ؼ:.net
  • 时,从 RealProxy 导出的类可以获得网络中服务器的负载信息,并将该调用路由到适当的服务器。简单地为所需的 ObjectURI 从通道请求一个 MessageSink ,并调用 SyncProcessMessageAsyncProcessMessage 以将该调用转发至所需的远程对象。当调用返回时,通过调用 RemotingServices 类的 PropagateMessageToProxy 将返回参数推回到堆栈中。 下面的代码片断显示了如何使用导出的 RealProxy 类。 MyRealProxy proxy = new MyRealProxy(typeof(Foo)); Foo obj = (Foo)proxy.GetTransparentProxy(); int result = obj.CallSomeMethod(); 上例中获取的 TransparentProxy 可以被转发到另一个应用程序域中。当第二个客户端试图调用代理上的某个方法时,远程处理框架会尝试创建 MyRealProxy 类的实例,并且如果程序集可用,所有的调用都会路由至此实例。如果程序集不可用,调用会路由至默认的远程 RealProxy 。 通过为默认的 ObjRef 属性 TypeInfoEnvoyInfoChannelInfo 提供替代,可以很容易地自定义 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语法