wcf实例模型(随记)
-----------------------------------------实例模型:
1.InstanceContentextMode:
-------PerCall(单调):无状态,每次调用之间都是独立的,没有关系;
为每个调用创建新的对象(全新的service);增加了整体吞吐量,内存开销少(服务用时创建,不用时销毁),不会产生并发;
若服务对象创建需要较长时间,就要考虑放弃这种方式;
声明方式:
在实现接口的服务上添加标签
[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCall)]
-----PerSession(系统缺省 会话):有状态(指的是一个session内部,session和session之间没有联系),每次调用具有相关的连续性,比如给一个变量赋值为1,那么第二次调用,变量值依
然为1;
单个client,单个session内部,数据是共享的;,第一次调用和第二次调用是同一服务;单不同client或不同session,是独立的;
内存开销大,引发多线程并发;
不支持basichttpbinding;其他绑定差不多都支持;
可以配置对话(控制session):sessionMode:Allowed(缺省)如果binding为basichttpbinding,会强制改为percall,因为不支持;,
notallowed:当前wcf对象服务不支持会话,required:强制使用会话,若组合为Persession+basichttpBinding,就会剖出异常了,推荐使用notallowed和required;
会话的声明:
在契约上添加声明:
[ServiceContract(SessionMode=SessionMode.Allowed)]
public interface Iguo
-----Single(单件模型):整个wcf在整个生命周期所有对象都是有状态的,对象可以在不同的session之间共享;
只有一个servie,类似单例模式吧,所有会话之间相互影响,内存开销大,引发并发;
----------session(会话):传输会话,可靠性会话,安全会话,应用程序会话;
wcf会话有客户端发起;sessionId:任何形式的会话都会生成会话信道,会话id将消息与信道关联;
sessionServiceClient proxy=new sessionServiceClient();
string s=proxy.innerChannel.sessionId;
---会话生命周期;通过配置文件进行配置:receiveTimeOut
<netTcpBinding>
<binding name="netTcp" receiveTimeOut="00:10:00"/>
</netTcpBinding>
---
[PerationContract(IsInitiating=false,IsTerminating=false)]
IsInitiating=true,:是否创建一个会话;
IsTerminating=false:是否结束一个会话,为true的话,在周期范围内也会清理,提高性能;
wcf实例模型(随记)的更多相关文章
- WCF之实例模型
PerCall. 为每次调用创建新的服务对象. 内存使用量最小,增加整体的吞吐量. 状态不保存,服务实例及时释放. 单例的状态没有办法保存.所以应使用数据库或者文件或者全局变量来保存服务实例的状态.如 ...
- WCF实例管理的三种方式
很多情况下,我们都需要控制wcf服务端对象的初始化方式,用来控制wcf实例在服务端的存活时间. Wcf框架提供了三种创建wcf实例的方式. WCF服务对象实例化基础 在普通的WCF请求和相应过程中,将 ...
- wcf并发处理模型(随记)
---------------------------------------------------------------------------------------并发性课程:1.多个线程同 ...
- WCF入门(九)--WCF实例管理
这组由Windows通讯基础(WCF)结合一组消息(客户端请求)服务实例所采用的技术被称为实例管理.一个完全由三种类型实例激活支持WCF,它们如下所述. 1.每个调用服务 每次调用服务是Windows ...
- WCF实例上下文
实例上下文模式(IntanceContext Mode)表示服务端的服务实例与客户端的服务代理的绑定方式. 在WCF中有三种不同的实例上下文模式,单调(Per-Call)模式,会话(Per-Sessi ...
- WCF - 实例与会话
实例上下文 实例上下文是对服务实例的封装 是WCF管理服务实例生命周期的依托 一个WCF服务通过ServiceHost进行寄宿 开启服务后当接收到请求 则会判断当前是否存在实例上下文 如果存在 则通 ...
- WCF实例上下文模式与并发模式对性能的影响
实例上下文模式 InstanceContextMode 控制在响应客户端调用时,如何分配服务实例.InstanceContextMode 可以设置为以下值: •Single – 为所有客户端调用分配一 ...
- JQuery Ajax调用WCF实例以及遇到的问题
1.遇到的最多的问题就是跨域问题,这个时间需要我们添加如下代码解决跨域的问题 第一步:在服务类加Attribute [AspNetCompatibilityRequirements(Requireme ...
- opengl加载多个3ds模型失败记
VC6 下载 http://blog.csdn.net/bcbobo21cn/article/details/44200205 opengl环境配置 http://blog.csdn.net/bcbo ...
随机推荐
- 以太网PHY 芯片之 MII/MDIO接口详解
本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时本文也对RJ-45接口进行了总结,分析了在10/100模式下和1000M模式下的设计方法. ...
- 关于接收POST请求 $GLOBALS['HTTP_RAW_POST_DATA']
总是产生变量包含有原始的 POST 数据.否则,此变量仅在碰到未识别 MIME 类型的数据时产生.不过,访问原始 POST 数据的更好方法是 php://input.$HTTP_RAW_POST_DA ...
- Unity3D脚本--真实1
1. Unity3D动作脚本 Unity3D脚本用于Unity3D发动机订单公布. JavaScript全局变量:在Inspector中能够看到,且能够改动其值.其他脚本可调用此变量. C#公有(pu ...
- 基于注释配置bean和装饰bean
1.组件扫描 Spring容器能够从classpath(类路径)下自动扫描.侦测和实例化具有特定注释的组件. 2.特定注释组件 –@Component: 基本注解, 标识了一个受 Spring 管理的 ...
- Yii Framework2.0开发教程(5)数据库mysql性能
继续<Yii Framework2.0开发教程(3)数据库mysql入门> 首先给予一定的尊重yii2数据库支持引进 Yii 基于 PHP's PDO一个成熟的数据库访问层的建立.它提供了 ...
- javascript的语法作用域你真的懂了吗
原文:javascript的语法作用域你真的懂了吗 有段时间没有更新了,思绪一下子有点转不过来.正应了一句古话“一天不读书,无人看得出:一周不读书,开始会爆粗:一月不读书,智商输给猪.”.再加上周五晚 ...
- HDU1325 Is It A Tree? 【并查集】
Is It A Tree? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- 传智播客.Net培训就业班入学测试题
2.对学员的结业考试成绩评测,要求在控制台中提示用户输入学员考试成绩,写一个方法,根据用户输入的成绩,返回一个等级:90分以上A级.80~90分B级.70~80分C级.60~70分B级.60分以下C级 ...
- 下载的youtube视频
youtube 视频下载方法[详解] 1.打开网址: http://kej.tw/flvretriever/. 2.输入要下载的youtube视频的网址. 3.点击右侧RETRIEVE NOW ! ...
- JS中Array数组的三大属性用法
原文:JS中Array数组的三大属性用法 Array数组主要有3大属性,它们分别是length属性.prototype属性和constructor属性. JS操作Array数组的方法及属性 本文总结了 ...