一 服务端激活方法整理

服务端有两种激活服务的方式,

1,通过RemotingConfiguration.RegisterServiceType方法,传入Type和URL。

方法优点:可以选择模式(Singleton,SingleCall),如果选择SingleCall则支持并发,不受生命周期管理。

方法缺点:激活之后则不能够注销。

2,通过RemotingServices.Marshal方法,传入一个实例化之后的MarshalByRefObject类和url。

方法优点:可以进行注销,通过RemotingServices.Disconn方法就可以实现,也就是说可以实现动态加载。

方法缺点:只能是Singleton模式,如果需要考虑并发性能,则不能考虑这种。

另外,通过2方法注册的服务器对象受生命周期管理,如果不进行设置,则默认生命周期为300秒。

参考文献:http://www.cnblogs.com/wayfarer/archive/2004/07/30/28723.html

二,服务端模式Singleton,SingleCall的区别

http://www.cnblogs.com/larryyangming/archive/2010/02/26/1674402.html

三,Remoting生命周期管理

参考:http://www.cnblogs.com/wayfarer/archive/2004/08/05/30437.html

.Net Remoting在每个应用程序域中都引入一个租用管理器,为每个服务器端的SingleTon,或每个客户端激活的远程对象保存着对租用对象的引用

但是对于服务器端激活的SingleCall方式,由于它是无状态的,对于每个激活的远程对象,都由CLR的GC来自动回收,因此对于SingleCall模式激活的远程对象,不存在生命周期的管理。

ILease接口定义了有关生命周期的属性,均为TimeSpan值。如下:
InitialLeaseTime:初始化有效时间,默认值为300秒,如果为0,表示永不过期;
RenewOnCallTime:调用远程对象一个方法时的租用更新时间,默认值为120秒;
SponsorshipTimeout:超时值,通知Sponsor(发起人)租用过期后,Remoting会等待的时间,默认值为120秒;
CurrentLeaseTime:当前租用时间,首次获得租用时,为InitializeLeaseTime的值。

租用周期有可以设置有效的时间值,也可以设置为永不过期,

设置永不过期有2中方式,一种是通过设置租用管理器属性,一种是通过override InitializeLifetimeService方法,方法返回null表示永不过期,值得注意的是:由于租用管理器是针对所有服务器对象的,如果出现2种同时使用时,(override)对象的租用配置优先级高于服务器端配置.

另外如果需要设置指定的时间过期则通过以下override,并设置时间来实现。

public override object InitializeLifetimeService()
 {
  ILease lease = (ILease)base.InitializeLifetimeService();
  if (lease.CurrentState == LeaseState.Initial)
  {
   lease.InitialLeaseTime = TimeSpan.FromMinutes(1);
   lease.RenewOnCallTime = TimeSpan.FromSeconds(20);
  }
  return lease;  
 }

Remoting整理相关推荐

  1. 据lovecherry的一步一步学Remoting序列文章学习.net Remoting日记(2)

    今天学习了服务器端激活和客户端激活的区别!可还是出现了一点点的差错,经过对比得到正确的调用方法,整理如下: 1.服务器端激活,分为两种方式Singleton和SingleCall方式 Server端A ...

  2. .NET技术学习目录整理

    .NET知识体系是个很庞大的体系,在此很难全部罗列,MSDN是全,基本上,下面所罗列的知识在MSDN中都可以找到. 这些知识看起来很全了,如果看看MSDN,似乎还差的远,就像某些达人说的,现在开发的应 ...

  3. 整理的常用JAVA开源库简介

    Jakarta common: Commons Logging Jakarta Commons Logging (JCL)提供的是一个日志(Log)接口(interface),同时兼顾轻量级和不依赖于 ...

  4. 一个关于Remoting的简单例子

    前言 今天在整理以前写的一些demo,看到一个关于remoting的例子.好久不用remoting了,果断记录一下. 什么是Remoting 简单回顾下: 1.Remoting是一种远程通信,或者说跨 ...

  5. [转载] Spring面试题整理

    参考链接: Java中的动态方法Dispatch和运行时多态 Spring面试题整理 2018年03月07日 21:11:46 hrbeuwhw 阅读数:49116 Spring 概述 1. 什么是s ...

  6. 吐血整理全网最全Spring面试题之高级篇(一)(共25题,附超详细解答)

    [Java架构师面试网]收集整理了一些spring面试的问题,这些问题可能会在你下一次技术面试中遇到.想成为Java架构师,这些都是不可避免也是必须要掌握的,对于其他spring模块,我后续也将单独分 ...

  7. http与websocket(基于SignalR)两种协议下的跨域基于ASP.NET MVC--竹子整理

    这段时间,项目涉及到移动端,这就不可避免的涉及到了跨域的问题.这是本人第一次接触跨域,有些地方的配置是有点麻烦,导致一开始的不顺. 至于websocket具体是什么意义,用途如何:请百度. 简单说就是 ...

  8. 关于Remoting(续)

    昨天写了文章<关于Remoting>,感觉有些问题没有说清楚.后来又看了一些文档和书,整理了一下,就算是续吧. 其实我发现主要的问题还是集中在客户端激活模式.我想再谈谈客户端激活模式和服务 ...

  9. 字节跳动mysql面试题_刚面完的字节跳动java研发面试题整理(含答案):线程+MySQL+Spring+JVM...

    点关注,不迷路:持续更新Java相关技术及资讯!!! 为什么要用线程池那先要明白什么是线程池 线程池是指在初始化一个多线程应用程序过程中创建一个线程集合,然后在需要执行新的任务时重用这些线程而不是新建 ...

  10. Powershell tricks::Powershell Remoting

    DM_ · 2014/11/03 10:03 0x01 简介 Powershell Remoting建立在windows WinRM服务之上,可以一对一或一对多远程控制,也可以建立HTTP 或 HTT ...

最新文章

  1. TVM vs TensorRT比较
  2. oracle加并行好不好,请教--对INSERT语句加并行度是否会提高速度
  3. Linux 计算某文件夹下的所有文件的md5值
  4. 活动目录域结构和域信任关系建立实验
  5. ORACLE10g R2及PATH官方下载地址
  6. 【动态规划】P1018 线性dp:乘积最大
  7. 查询解析MySQL_mysql内部查询过程详解
  8. web使用js调用摄像头扫码、拍照、录像
  9. 基于OpenCore0.5.4/5/6,初级配置视频与文字
  10. Vue 简单人脸识别
  11. 给全栈人员,如何用ps让图片不改变尺寸分辨率大小的情况下,让图片质量变的更小
  12. 柴静穹顶之下 感想
  13. 关于高压线路如何防山火
  14. 途牛原创|基于EAV模型的运营系统架构实践
  15. CSS------第四章浮动
  16. 滑块JS破解/本地识别DLL
  17. python编辑word的格式_Python 如何对word文档(.docx)的页眉和页脚进行编辑?
  18. IDEA中springboot项目@SpringBootApplication飘红问题的奇葩解决方案
  19. 孤岛惊魂3闪退win10win11下运行办法
  20. 一个北漂女程序员的心中梦想

热门文章

  1. OPPO Reno ACE的刷机
  2. NEMA-0183(GPGGA,GPRMC,GPGSA,GPGSV,GPVTG)详解
  3. Spring MVC中使用Swagger生成API文档和完整项目示例Demo,swagger-server-api
  4. python在线题库推荐_Python题库.docx
  5. otf VS ttf images
  6. 倍福--TwinSAFE的配置
  7. STM32cubemx教程及STM32入门(一)
  8. c语言国二题库选择填空题,国二c语言笔试题库(含答案),选择填空.doc
  9. 软件测试和web前端该怎么选择
  10. 教育实习手册高中计算机,计算机教育实习论文大纲格式模板 计算机教育实习论文框架如何写...