Remoting整理
一 服务端激活方法整理
服务端有两种激活服务的方式,
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整理相关推荐
- 据lovecherry的一步一步学Remoting序列文章学习.net Remoting日记(2)
今天学习了服务器端激活和客户端激活的区别!可还是出现了一点点的差错,经过对比得到正确的调用方法,整理如下: 1.服务器端激活,分为两种方式Singleton和SingleCall方式 Server端A ...
- .NET技术学习目录整理
.NET知识体系是个很庞大的体系,在此很难全部罗列,MSDN是全,基本上,下面所罗列的知识在MSDN中都可以找到. 这些知识看起来很全了,如果看看MSDN,似乎还差的远,就像某些达人说的,现在开发的应 ...
- 整理的常用JAVA开源库简介
Jakarta common: Commons Logging Jakarta Commons Logging (JCL)提供的是一个日志(Log)接口(interface),同时兼顾轻量级和不依赖于 ...
- 一个关于Remoting的简单例子
前言 今天在整理以前写的一些demo,看到一个关于remoting的例子.好久不用remoting了,果断记录一下. 什么是Remoting 简单回顾下: 1.Remoting是一种远程通信,或者说跨 ...
- [转载] Spring面试题整理
参考链接: Java中的动态方法Dispatch和运行时多态 Spring面试题整理 2018年03月07日 21:11:46 hrbeuwhw 阅读数:49116 Spring 概述 1. 什么是s ...
- 吐血整理全网最全Spring面试题之高级篇(一)(共25题,附超详细解答)
[Java架构师面试网]收集整理了一些spring面试的问题,这些问题可能会在你下一次技术面试中遇到.想成为Java架构师,这些都是不可避免也是必须要掌握的,对于其他spring模块,我后续也将单独分 ...
- http与websocket(基于SignalR)两种协议下的跨域基于ASP.NET MVC--竹子整理
这段时间,项目涉及到移动端,这就不可避免的涉及到了跨域的问题.这是本人第一次接触跨域,有些地方的配置是有点麻烦,导致一开始的不顺. 至于websocket具体是什么意义,用途如何:请百度. 简单说就是 ...
- 关于Remoting(续)
昨天写了文章<关于Remoting>,感觉有些问题没有说清楚.后来又看了一些文档和书,整理了一下,就算是续吧. 其实我发现主要的问题还是集中在客户端激活模式.我想再谈谈客户端激活模式和服务 ...
- 字节跳动mysql面试题_刚面完的字节跳动java研发面试题整理(含答案):线程+MySQL+Spring+JVM...
点关注,不迷路:持续更新Java相关技术及资讯!!! 为什么要用线程池那先要明白什么是线程池 线程池是指在初始化一个多线程应用程序过程中创建一个线程集合,然后在需要执行新的任务时重用这些线程而不是新建 ...
- Powershell tricks::Powershell Remoting
DM_ · 2014/11/03 10:03 0x01 简介 Powershell Remoting建立在windows WinRM服务之上,可以一对一或一对多远程控制,也可以建立HTTP 或 HTT ...
最新文章
- TVM vs TensorRT比较
- oracle加并行好不好,请教--对INSERT语句加并行度是否会提高速度
- Linux 计算某文件夹下的所有文件的md5值
- 活动目录域结构和域信任关系建立实验
- ORACLE10g R2及PATH官方下载地址
- 【动态规划】P1018 线性dp:乘积最大
- 查询解析MySQL_mysql内部查询过程详解
- web使用js调用摄像头扫码、拍照、录像
- 基于OpenCore0.5.4/5/6,初级配置视频与文字
- Vue 简单人脸识别
- 给全栈人员,如何用ps让图片不改变尺寸分辨率大小的情况下,让图片质量变的更小
- 柴静穹顶之下 感想
- 关于高压线路如何防山火
- 途牛原创|基于EAV模型的运营系统架构实践
- CSS------第四章浮动
- 滑块JS破解/本地识别DLL
- python编辑word的格式_Python 如何对word文档(.docx)的页眉和页脚进行编辑?
- IDEA中springboot项目@SpringBootApplication飘红问题的奇葩解决方案
- 孤岛惊魂3闪退win10win11下运行办法
- 一个北漂女程序员的心中梦想
热门文章
- OPPO Reno ACE的刷机
- NEMA-0183(GPGGA,GPRMC,GPGSA,GPGSV,GPVTG)详解
- Spring MVC中使用Swagger生成API文档和完整项目示例Demo,swagger-server-api
- python在线题库推荐_Python题库.docx
- otf VS ttf images
- 倍福--TwinSAFE的配置
- STM32cubemx教程及STM32入门(一)
- c语言国二题库选择填空题,国二c语言笔试题库(含答案),选择填空.doc
- 软件测试和web前端该怎么选择
- 教育实习手册高中计算机,计算机教育实习论文大纲格式模板 计算机教育实习论文框架如何写...