您的位置:建站学院首页 >> 文章 >> asp.net >> .NET概论及软件使用
Microsoft .NET Romoting 框架简介

namespace myRemoteService
{
    // 有名的 Web 服务对象
    public class myRemoteObject : MarshalByRefObject
    {
        // myRemoteMethod 方法
        public String myRemoteMethod(String s)
        {
         return "Hello World";
        }
    }
}

访问此对象的客户端代码示例
using System;
using System.Runtime.Remoting;
using myRemoteService;
public class Client
{
    public static int Main(string[] args)
    {
        ChannelServices.RegisterChannel(new HTTPChannel(7055));
      // 创建 myRemoteObject 类的实例
   myRemoteObject myObj = ( myRemoteObject)Activator.GetObject(typeof(myRemoteObject),
            "http://myHost:7021/host/myRemoteObject.soap");
      myObj. myRemoteMethod ("Hello World");
        return 0;
    }
}
租用生存期
对于那些具有在应用程序之外传送的对象引用的对象,将创建一个租用。租用具有一个租用时间。如果租用时间为 0,则租用过期,对象将断开与 .NET Romoting 框架的连接。一旦 AppDomain 内部所有的对象引用都被释放,则下一个 GC 发生时对象将被回收。租用控制了对象的生存期。

对象有默认的租用阶段。当客户端要在同一服务器对象中维护状态信息时,可以通过许多方法扩展租用阶段,使对象继续生存。

可以将服务器对象的租用时间设置为无限,这样 Remoting 在垃圾回收周期中就不会回收此对象。


客户端可以调用 RemotingServices.GetLifetimeService 方法,以从 AppDomain 的租用管理器获取服务器对象的租用时间。然后,客户端便可以通过 Lease 对象来调用 Lease.Renew 方法,以延长租用时间。


客户端可用 AppDomain 的租用管理器为特定的租用注册负责人。当远程对象租用过期时,租用管理器将通知负责人提出更新租用的申请。


如果设置了 ILease::RenewOnCallTime 属性,则每次调用远程对象时,都会用 RenewOnCallTime 属性指定的时间更新租用时间。
  单一调用/单一元素对象 客户端激活的对象
客户端激活代码(客户端所需的代码)
有关详细信息,请参阅配置文件的相关小节
a) Activator.GetObject()
b) new() 及 CFG 文件

客户的 CFG 文件引用下列 URL:

Foo= http://localhost:80/ObjectZone/Foo.soap
a) Activator.CreateInstance()
b) new() 及 CFG 文件

客户的 CFG 文件引用服务器数据库以及服务器应用程序的 URL,并提供对象 URI。客户端内置了对这些数据库的引用:

Assembly#MyObjectLibrary#ObjectZone#
  MyObjectLibrary.Baz

RemoteApplication#ObjectZone#
  HTTP://localhost:80/ObjectZone

服务器对象的激活 在首次调用方法之前,不会在网络上发送激活消息 当客户端创建对象,并且在客户端生成代理之后,激活消息将发送至服务器。支持带参数的构造函数。

本内容共6页  首 页  上一页  下一页  尾 页  当前在第2

Google
 
Web www.cqxw.net