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 ...
随机推荐
- git 如何让单个文件回退到指定的版本
1.进入到文件所在文件目录,或者能找到文件的路径查看文件的修改记录 1 $ git log MainActivity.java 结果: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- JMeter怎么使用代理服务器
一.JMeter有一个内置的代理服务器,主要用户使用浏览器录制脚本,在左侧的WorkBench中添加HTTP Proxy Server即可, 其中port表示代理服务器段口号, URL Pattern ...
- What is WCF
几个博客前,都是关于WCF零散的知识.要了解下下面的宏,什么是WCF? WCF:Windows Communication Foundation(WCF)框架. 1.WCF体系框架 2.框架分析 2. ...
- Struts1和Struts2对照
最近学习Struts1和Struts2.好多人.提到非常多的信息. Struts2不从Struts1进化. Struts2的前身WebWork. 呢,看了一些资料,下边就来比較比較. 一.架构分析 S ...
- js中frame的操作问题
这里以图为例,在这里把frame之间的互相操作简单列为:1变量2方法3页面之间元素的互相获取. A 首先从 父(frameABC)------->子(frameA,frameB,frameC) ...
- Kd-Tree算法原理和开源实现代码
本文介绍一种用于高维空间中的高速近期邻和近似近期邻查找技术--Kd-Tree(Kd树). Kd-Tree,即K-dimensional tree,是一种高维索引树形数据结构,经常使用于在大规模的高维数 ...
- Oracle 树操作
Oracle 树操作(select…start with…connect by…prior) oracle树查询的最重要的就是select…start with…connect by…prior语法了 ...
- DataTable转化为List
public List<T> ConvertToList<T>(DataTable dt) where T : new() { // 定义集 ...
- Nuget介绍及使用技巧
一.介绍 什么是Nuget? 引用自Nuget网站的原话“NuGet is the package manager for the Microsoft development platform inc ...
- vs2012代码段,快捷键,snippet 的使用
这篇还是介绍怎么简单我们编写代码------本想放在上一篇 插件 一起,但是怕搜不到, 大神们就没法给我教更好的方式,所以就另写了一篇 [大家看完后,插件resharp如果能实现这效果,请教 ...