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 ...
随机推荐
- 如何生成可变表头的excel(转)
1.实现功能: 传入一个表头和数据,将数据导入到excel中. 为了便于项目的扩展,数据传入通过泛型集合传入,获取数据时,通过反射的方式获取,这样无论你的表头是多少项,我都能很方便的生成.另外为了便于 ...
- Scala刮:使用Intellij IDEA写hello world
介绍 在前面的文章中,,我们介绍了如何使用Scala IDE那是,eclipse集成Scala开发插件Scala开发语言程序.使用一段时间后,.发现eclipse正确Scala支持不是很好.用户体验差 ...
- SQL Server 2012 复制(发布订阅的研究)
原文:SQL Server 2012 复制(发布订阅的研究) 已实现发布订阅功能,可以实现局域网内双击备份. 一.注意事项: a) 使用[事务复制]功能 b) 必须是相同的SqlServer 帐号和密 ...
- neu1458 方格取数 dp解法
题意: 有N * N个格子,每一个格子里有正数或者0,从最左上角往最右下角走,仅仅能向下和向右,一共走两次(即从左上角走到右下角走两趟),把全部经过的格子的数加起来,求最大值SUM,且两次假设经过同一 ...
- Topshelf创建Windows服务
使用Topshelf创建Windows服务 概述 Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps ...
- 只显示年月的js时间控件 纯手写
<style> #date { text-align: center; } .td { cursor: pointer; } </style> <script> f ...
- 深入理解C指针之二:C内存管理
原文:深入理解C指针之二:C内存管理 内存管理对所有程序来说都很重要.有时候内存由运行时系统隐式的管理,比如为变量自动分配内存.在这种情况下,变量分配在它所处的函数的栈帧上(每个函数都有它自己的栈帧, ...
- 动画云创始人胥克谦&课程格子创始人李天放分享创业经历
原文地址:http://student.csdn.net/mcd/topic/163587/955044 2014年10月18日在北京科技大学成功举办了CSDN高校俱乐部全国巡讲,现场參会学生有一百余 ...
- fast-json.jar的用法
fast-json.jar 解析json数据:一种json数据解析方式是这种,点击这里下载jsonfast.jar+fastjsonAPI文档 [ { "id": 6378, &q ...
- Cocos2d-x3.0 TestCPP文件夹的注意事项
1.不多说了,重力加速度. 2.ActionMangerTest:此Test它是由导演来展示,以获得集体诉讼经理ActionManager类别,操作控制节点. ①CrashTest:破坏demo,毁. ...