【.NetRemoting-3】2015.09.18
【Remoting程序的基本实现】
【一】服务程序集
【1】服务对象必须要求继承【MBR,MarshalByRefObject】
【二】服务端应用程序
【1】注册通道
【两种类型的通道】
【A】发送请求的通道,要求实现IChannelSender 接口
【B】接受请求的通道,要求实现IChannelReceiver 接口
【.Net提供的内置通道】==>均实现了IChannelSender,IChannelReceiver,IChannel
【HttpChannel】
==>可实现跨防火墙
==>【消息】通过【SOAP】格式化
【TcpChannel】
==>无法跨防火墙
==>【消息】通过【二进制】格式化
【IcpChannel】
==>不能跨计算机,只能在同一台计算机内跨线程访问。
==>底层基于【命名管道,Named Pipe】
【代码实现】
【A】实例化Channel对象
==>两种构造Channel对象的方法
【B】使用ChannelServices.RegisterChannel(channelobj,bool)注册通道
【2】注册类型==>告知客户端,宿主应用程序域中哪些对象是可以被客户端访问到的
【服务对象的三种激活方式】
【1】客户端激活
【2】服务端激活Singleton【Server activated Singleton】
【3】服务端激活SingleCall【Server activated SingleCall】
【代码实现】
==>使用RemotingConfiguration.RegisterActivatedServiceType(type)【客户端激活】方法
==>使用RemotingConfiguration.RegisterWellKnowServiceType(type,"objUri",activatType)【服务端激活方式】
【3】对象位置
客户端如何知道对象位置?==>URL
【RemotingConfiguration.ApplicationName】属性
【URL形式】
【Service Activated】
==> protocal://hsotadress:port/ApplicationName/ObjectUrl
【Client Activated Object】
==> protocal://hsotadress:port
==> protocal://hsotadress:port/ApplicationName
【三】客户端程序==>Only One Task
===>获取远程对象,调用远程对象方法。
【步骤】
【A】注册类型==>告知.Net该对象应该是在服务端注册的,而非在本地
==>客户端类型注册与服务端类型注册的方法类似【使用RemotingConfiguration】
==>使用RemotingConfiguration.RegisterActivatedClientType(type,uri)【客户端激活】方法
==>使用RemotingConfiguration.RegisterWellKnowClientType(type,"uri")【服务端激活方式】
【B】new操作符创建对象
【2】其他创建远程对象的方法
==>【RemotingServices.Connect()】==>简单,较为常用,只能调用无参构造函数,获取对象的同时创建代理
==>【Activator.GetObject()】==>简单,较为常用,只能调用无参构造函数,获取对象的同时创建代理
==>【Activator.CreateInstance()】==>可调用有参构造函数,但只能创建客户激活对象。
【.NetRemoting-3】2015.09.18的更多相关文章
- 【.NetRemoting-2】2015.09.17
[Remoting架构] [1]是.NetFramework的一个重要组成 [2]框架的两个重要特性 [A]基本实现[B]可扩展/可定制 [各个组成部分] [1][客户端,客户端应用程序域] [组成] ...
- 【Unity|C#】基础篇(18)——正则表达式(Regex类)
[学习资料] <C#图解教程>:https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu.com/s/ ...
- 【转帖】2015年2月份最佳的免费 UI 工具包
2015年2月份最佳的免费 UI 工具包 设计师们最喜欢 UI 工具包,这是一种思路拓展的方法,同时可以利用它们来解决各种复杂的项目,同时可用来了解其他设计师的风格.这里我们收集了最近这一个月一些最棒 ...
- 【直播预告】7月18日3D游戏引擎免费公开课答疑,參与送C币!
喜讯喜讯! 为了酬谢广大学员.CSDN学院特推出iOS和3D游戏引擎开发免费技术答疑公开课,让您度过一个充实的暑假~ 參与本次公开课,即有机会获得50C币! 答疑公开课时间:7月18日 晚7:30-9 ...
- 【英语学习】2016.09.11 Culture Insider: Teacher's Day in ancient China
Culture Insider: Teacher's Day in ancient China 2016-09-10 CHINADAILY Today is the 32nd Chinese Te ...
- Python基础教程【读书笔记】 - 2016/7/18
希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第七波:第3章 字符串 介绍如何使用字符串格式化其他的值,并简单了解一下利用字符串的分割.联接.搜索等方法能做些什么. ...
- 【python基础】第09回 数据类型内置方法 01
本章内容概要 1.数据类型的内置方法简介 2.整型相关方法 3.浮点型相关方法 4.字符串相关方法 5.列表相关方法 本章内容详情 1.数据类型的内置方法简介 数据类型是用来记录事物状态的,而事物的状 ...
- 【.Net Remoting-1】
[.NetRemoting]2015.09.16 [分布式应用程序] 应用程序分布在不同计算机上,通过网络来共同完成一项任务 C/S架构[模式] [互操作性,Interoperability]又称[互 ...
- NPOI2.2.0.0实例详解(十)—设置EXCEL单元格【文本格式】 NPOI 单元格 格式设为文本 HSSFDataFormat
NPOI2.2.0.0实例详解(十)—设置EXCEL单元格[文本格式] 2015年12月10日 09:55:17 阅读数:3150 using System; using System.Collect ...
随机推荐
- 配置IIS
1.aspnet_regiis -i 重新安装IIs vs2013的命令符 2. 分配权限 1.对文件夹,权限,安全,分配权限 2.设置webconfig 对应的httpModel 及安全性 3.设 ...
- 加载为应用程序池‘DefaultAppPool'提供服务的进程失败,应用程序池被禁用【解决方法】
iis应用程序池不能启动2008年03月13日 星期四 15:29iis应用程序池不能启动.WINDOWS2003 ENT SERVER(64位)环境下(测试过32位系统一样操作无此问题),当打开“应 ...
- 1215.1——动态分配内存的补充realloc
当再次在原来申请的内存基础上再加内存的时候用realloc,如果第一次分配的内存后面存储地方够用,则连着原来的申请,如果不够用,就重新找到一块够用的地方,然后把原来的复制过去 int main(int ...
- /调整button的title的位置
[bottomButton setTitleEdgeInsets:UIEdgeInsetsMake(10, -190, 10, 44)]; //上左下右 ||button.co ...
- hdu 2504
Problem Description 有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b.若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c. Input 第一 ...
- 负载均衡集群之LVS算法和模型
LVS-->Linux Virtual Server 实现算法-->静态/动态,共10种 静态算法: rr(round robin): 解析:轮叫算法,即0-9循环 ...
- 海量数据面试题----分而治之/hash映射 + hash统计 + 堆/快速/归并排序
1.从set/map谈到hashtable/hash_map/hash_set 稍后本文第二部分中将多次提到hash_map/hash_set,下面稍稍介绍下这些容器,以作为基础准备.一般来说,STL ...
- Backward Digit Sums(POJ 3187)
Backward Digit Sums Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5495 Accepted: 31 ...
- 工作中小知识点汇总(c#)
1.OOP 实体与数据库字段转换(注意 此时实体字段必须和数据库中查询的字段列名相同) list = ModelExtend.GetByDataTablePart<EZRate>(ds.T ...
- iOS开发之OC篇-响应式编程Reactive Cocoa
一.Reactive Cocoa 介绍 Reactive Cocoa 是 iOS 开发的一个 "重量级" 框架 高大上的概念:响应式编程 核心概念:信号 Signal 官方网站:h ...