WCF基础之会话、实例和并发
这篇笔记是一些概念性的东西。
会话,借用百科上的描述就是一个客户与服务器之间的不中断的请求响应序列。wcf的会话模式是通过服务契约的SessionModel进行设置的,其值为枚举,分别为:Allowed,改值为默认值,客户端连接,选择会话或者不建立会话;Required,必须建立会话;NotAllowed,禁止会话。WCF的会话是可以通过应用程序显示的进行启动和终止,是有序的,是不存在与会话相关的数据存储区的。
系统提供的会话类型:
System.ServiceModel.Channels.SecurityBindingElent支持基于安全的会话,通信两端都必须采用统一的安全对话。
System.ServiceModel.Channels。ReliableSessionBindingElement元素实现WS-ReliableMessaging规范,并提供对可靠会话的的支持,可配置消息按顺序传递且只传递一次,从而保证消息在会话期间即使经过多个节点也可以确保安全。
WSHttpBiding默认情况下只使用对消息进行加密和数字签名的安全会话。
NetTcpBinding支持基于TCP/IP的会话,以确保所有消息都是由套接字级别的连接进行关联。
NetMsmqBinding提供msmq数据会话。
实例化模式是通过设置InstanceContext的属性来实现的,值为枚举:PerCall,每次请求都是一个新的InstanceContext;PerSession,每个会话创建一个新的InstanceContext;Single,所有会话都共用一个InstanceContext。
并发模式也有三种,通过ConcurrencyMode属性设置(对于并发这个我也没弄明白,等我多写几个demo再说):single允许每个InstanceContext同时只能有一个线程处理其中的消息;Mulitple允许拥有多个同时处理消息的线程,服务必须实现线程安全;Reentrant:每个服务实例智能处理一个消息,但可以接受重入的操作调用,仅当服务通过wcf客户端对象提供服务时才接受这些调用。
这下面是我在会话模式下,不同的实例化模式下的调用结果:
客户端
MyService.WCFServiceClient myClient = new MyService.WCFServiceClient();
; i < ;i++ )
Console.WriteLine(myClient.TestSession());
Console.Read();
服务端
public class WCFService:IWCFService
{
;
public int TestSession()
{
;
}
}
Required+Single


Required+PerCall

Required+PerSession


其他的几种可以自己再试试。
WCF基础之会话、实例和并发的更多相关文章
- WCF服务编程 读书笔记——第1章 WCF基础(2)
续:第1章 WCF基础(1) 元数据交换 服务有两种方案可以发布自己的元数据.一种是基于HTTP-GET协议提供元数据, 另一种则是后面将要讨论的使用专门的终结点的方式.WCF能够为服务自动提供基于H ...
- WCF初探-26:WCF中的会话
理解WCF中的会话机制 在WCF应用程序中,会话将一组消息相互关联,从而形成对话.会话”是在两个终结点之间发送的所有消息的一种相互关系.当某个服务协定指定它需要会话时,该协定会指定所有调用(即,支持调 ...
- WCF服务类的实例模式(本文为转载)
WCF开发时如何选择正确的实例模式(InstanceMode)? 在使用WCF实例模型时,你是否思考过这几个的问题: ”WCF中的实例模式如何正确应用”? ”使用WCF中的实例模式有何原则可以遵循 ...
- [WCF编程]8.服务实例的生命周期
一.服务实例的生命周期概览 我们已经直到,通过显式调用Close方法或等待默认的超时时间到来,都可以释放服务实例.但是,在会话连接里,经常需要按一定顺序调用方法. 二.分步操作 会话契约的操作有时隐含 ...
- WCF基础教程之异常处理:你的Try..Catch语句真的能捕获到异常吗?
在上一篇WCF基础教程之开篇:创建.测试和调用WCF博客中,我们简单的介绍了如何创建一个WCF服务并调用这个服务.其实,上一篇博客主要是为了今天这篇博客做铺垫,考虑到网上大多数WCF教程都是从基础讲起 ...
- 重温WCF之WCF中可靠性会话(十四)
1.WCF中可靠性会话在绑定层保证消息只会被传输一次,并且保证消息之间的顺序.当使用TCP(Transmission Control Protocol,传输控制协议)通信时,协议本身保证了可靠性.然而 ...
- WCF 实例化与会话
实例管理旨在解决服务实例的激活和服务实例生命周期的控制,会话的目的是在于保持相同客户端(服务代理)多次服务调用的状态. 实例上下文 实例上下文是对服务实例的封装,是WCF管理服务实例生命周期的依托,S ...
- WCF技术剖析之一:通过一个ASP.NET程序模拟WCF基础架构
原文:WCF技术剖析之一:通过一个ASP.NET程序模拟WCF基础架构 细算起来,已经有好几个月没有真正的写过文章了.近半年以来,一直忙于我的第一本WCF专著<WCF技术剖析>的写作,一直 ...
- WCF 基础框架
WCF 基础框架: 1,契约:契约书一语个服务公共接口的一部分,一个服务的契约定义了服务端公开的方法,使用的传递协议,可访问的地址,传输的消息格式等内容,主要包括数据契约,消息契约,服务契约等. 2, ...
随机推荐
- Oracle Study之-AIX6.1构建Oracle 10gR2 RAC(4)
Oracle Study之-AIX6.1构建Oracle 10gR2 RAC(4) 一.安装CRS补丁 在安装CRS之前,须要安装补丁p6718715_10203_AIX64-5L,否则在安装时会出现 ...
- JavaWeb教程路线
主要内容大概例如以下: 1.开发环境搭建 2.servlet/jsp解说 3.mysql解说 4.JDBC解说 5.ssh解说 6.整合开发 7.样例具体解释
- webstrom 中 plugins error 设置里 Languages & Frameworks里面没有JavaScript?
不知道哪里不对 js突然不支持高亮 于是在设置里面找language & frameworks里面的JavaScript 选项 但是竟然没有JavaScript选项. 还有plugins er ...
- notepad++ 在每一行最后加上逗号
1.全选缩进对齐 2.替换功能,入下全部替换 3.在入下替换 4.结果 完成!
- 百度兴趣点下载V1.4版
好东西就是不断的更改,升级出来的,经过连续四个版本的升级,本次版本受到用户的一致好评,也拿来在这里做个分享,期望对更多地用户起到一定的帮助! 还是一样,介绍一下其功能: 1.全国范围内的兴趣点任意区域 ...
- C++ 利用文件流复制文件
bool CopyFile(const std::string &src, const std::string &dest) { std::ifstream fin(src.c_str ...
- MYSQL总结之sql语句大全
一.基础1.说明:创建数据库 CREATE DATABASE database-name .说明:删除数据库 drop database dbname .说明:备份sql server --- 创建 ...
- DbVisualizer出现下列错误:Could not read XML file
数据库连接工具对于我们软件测试工程师来说是日常的工具,一旦关键时刻报些莫名的错误,相信大家很是苦恼.当然,各公司数据库连接工具各异,像DbVisualizer.PLsql.sqldeveloper.T ...
- 补充——a.extend(b) #合并列表——a.update(b) #把b字典的元素加入到a字典里面
1.list dict tulpe a='dongtian'a[0]='h' #会报错,字符串不能修改print(a) a=[]a.append('abc')a.insert(0,'vcc') b=[ ...
- JAVA 自动生成对应数据库表的JPA代码工具
http://blog.csdn.net/zheng2008hua/article/details/6274659 关键词:JPA 数据库表代码自动生成,JPA代码生成 自动生成对应数据库表的 ...