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 ...
随机推荐
- JS前端正则表达式学习笔记(转)
1.正则表达式的创建: 方法一:以字面量形式来创建 格式为/pattern/flags;其中pattern(模式)为任何简单或者复杂的表达式,可以包括字符类,限定符,分组,向前查找以及反向引用.每个正 ...
- eclipse 对齐行号在括号中显示和字体调整
笔者 : 本笃庆军 一.括号对齐:指和C/C++里面一样.上下括号对齐~~~ 第一步:Project->preferences->Java->Code Style->Forma ...
- Https 客户端与服务器交互过程梳理(转)
本文试图以通俗易通的方式介绍Https的工作原理,不纠结具体的术语,不考证严格的流程.我相信弄懂了原理之后,到了具体操作和实现的时候,方向就不会错,然后条条大路通罗马.阅读文本需要提前大致了解对称加密 ...
- TinyMCE实现简单的本地上传
TinyMCE这个东西很多地方再用,不过我以前一直没用过,最近才接触,因为有一套现成的metro风格的皮肤,仅此而已,不过最终如何调用还是我得来实现.其他的都好说,网上的资料一大把一大把的,唯独这个本 ...
- vs2012代码段,快捷键,snippet 的使用
这篇还是介绍怎么简单我们编写代码------本想放在上一篇 插件 一起,但是怕搜不到, 大神们就没法给我教更好的方式,所以就另写了一篇 [大家看完后,插件resharp如果能实现这效果,请教 ...
- form表单target的用法,实现无刷新提交页面
form表单的target,当将iframe设置为隐藏时,可以实现当前页表单提交而不进行跳转刷新.代码如下,首页在页面里准备一个form表单和一个iframe. <form action=&qu ...
- ASP.NET 5 Web 项目
在Mac OS X Yosemite 10.10.3 中搭建第一个 ASP.NET 5 Web 项目 终于有时间在 Mac 上安装一下 ASP.NET 5,网上有许多教程,但是多数的时间比较早了,版本 ...
- XEvent – SQL Server Log文件对磁盘的写操作大小是多少
原文:XEvent – SQL Server Log文件对磁盘的写操作大小是多少 本篇是上一篇SQL Server Log文件对磁盘的写操作大小是多少的续,使用XEvent收集SQL Server D ...
- 在线预览Excel
遇到的问题各种多 <system.web> <identity impersonate="true" userName="Administ ...
- AFNetworking3.0 POST请求
// 请求管理者 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.responseSerializer ...