WCF可靠性会话之服务分流

可靠性绘画答条件:

(1)服务绑定支持可靠性绘画:特别是netTcpBinding、wsHttpBinding及wsDualHttpBinding.

wsDualHtttpBinding可靠性绘画始终都是可用的,不须要配置,然上面的其他两种须配置,以wsHttpBinding为例,配置如下:

<wsHttpBinding>

<binding 
name="mybinding" >

<reliablesession   enabled="true"  ordered="true"
inactivityTimeout="00:10:00" />     <--最后一个属性表示提高闲置超时时间-->

</binding>

</wshttpBinding>

当然你也可以使用定制绑定  <customBinding>(推荐)设置更丰富(详情百度!)

ServiceThrottleBehavior提供了很多吞吐量控制的设置:

(1)MaxConcurrentCalls: 限制并发请求(也就是同时向服务器发送请求的个数)– 缺省为16

(2)MaxConcurrentInstances: 限制服务实例的数量(也就是服务端创建的服务实例的个数)–
缺省为int.MaxValue,该值一般大于等于maxConcurrentCalls;

(3)MaxConcurrentSessions:限制活动会话数量,包括传输,可靠性与安全会话和应 用程序会话– 缺省10

<serviceThrottling
maxConcurrentCalls="30"
maxConcurrentInstances="2147483647"
maxConcurrentSessions="30" />

下面是完整配置:

<system.ServiceModel>

<wsHttpBinding>

<binding  name="mybinding"
>

<reliablesession   enabled="true"  ordered="true"
inactivityTimeout="00:10:00" />     <--最后一个属性表示提高闲置超时时间-->

</binding>

</wshttpBinding>

<services>

<service  name="Services.OneServices"  behaviorConfiguration="mybehavior">

<host>

<baseAddresses>

<add 
address="http://loacalhost:3333/mywcf
/>

</baseAddresses>

</host>

<endpoint 
address=""   binding="wsHttpBinding" 
Contract="Contracts.IOneContract"  bindingConfiguration="mybinding"></endpoint>

<endpoint  address="mex"  binding="mexHttpBinding"
Contract="IMetadataExchange" />

</service>

</services>

<behaviors>

<serviceBehaviors >

<behavior  name="mybehavior">

<serviceMetadata 
HttpGetEnabled="true" />

                              <serviceThrottling
maxConcurrentCalls="30"
maxConcurrentInstances="2147483647"
maxConcurrentSessions="30" />

</behavior>

<serviceBehaviors>

</behaviors>

</system.ServiceModel>

时间: 2024-10-21 01:48:42

WCF可靠性会话之服务分流的相关文章

重温WCF之WCF中可靠性会话(十四)

1.WCF中可靠性会话在绑定层保证消息只会被传输一次,并且保证消息之间的顺序.当使用TCP(Transmission Control Protocol,传输控制协议)通信时,协议本身保证了可靠性.然而,它只在两点之间的网络包这个层面提供了这样的保证.WCF的可靠性会话特性保证了在传输过程中消息不会丢失.重复或错位.这种保证是消息层面的,而且适用于任何数目节点的通信.另外,使用可靠性会话时,WCF会重连掉线的连接,在重连失败时还会释放会话占用的相关资源.可靠性会话还会通过调整消息的发送频率来缓解网

第十六讲 可靠性会话

代码 https://yunpan.cn/cPns5DkGnRGNs   密码:3913 不是特殊的Demo,我们不再贴实例Demo的图片了,直接去网盘找相应的项目看 可靠性: 分布式.面向服务的系统可能会受到间歇性网络故障的影响,这可能会对系统的整体完整性造成巨大破坏.系统必须为失败提供足够的容错性,它们必须能够以可控和可预测的方式从失败中恢复. WCF提供了3个主要功能来提高整体的可靠性,以及客户端和服务器之间通信的可预测性,这些功能包括: 1.可靠的会话(可靠的会话可以克服发生在TCP,命

快速入门系列--WCF--02消息、会话与服务寄宿

经过WCF基础的ABC学习,已经可以构建简单的WCF的服务,使用不同的服务地址和绑定类型,根据业务提供所需的服务契约.但不禁想问,服务所使用的消息报文是什么样的形式么?蕴含什么样内容呢?WCF服务是否支持会话?WCF所提供的服务是单例的呢还是单调的呢?服务寄宿和客户端代理是如何实现的呢?接下来,将以这些问题为线索进行深入学习,包容包括XML序列化与SOAP消息.会话与实例.服务寄宿与客户端代理. 可以这么说,整个WCF服务都是构建在SOAP消息的基础上的,而SOAP消息是建立在XML这种跨平台的

WCF初探-13:WCF客户端为双工服务创建回调对象

前言: 在WCF初探-5:WCF消息交换模式之双工通讯(Duplex)博文中,我讲解了双工通信服务的一个应用场景,即订阅和发布模式,这一篇,我将通过一个消息发送的例子讲解一下WCF客户端如何为双工服务创建回调对象. 双工服务指定一个回调协定,客户端应用程序必须实现该协定以便提供一个该服务能够根据协定要求调用的回调对象.虽然回调对象不是完整的服务(例如,您无法使用回调对象启动一个通道),但是为了实现和配置,这些回调对象可以被视为一种服务. 双工服务的客户端必须: 实现一个回调协定类. 创建回调协定

重温WCF之会话Session(九)

转载地址:http://blog.csdn.net/tcjiaan/article/details/8281782 每个客户端在服务器上都有其的独立数据存储区,互不相干,就好像A和服务器在单独谈话一样,所以叫会话. 下面,我们写一个例子,看看在不支持会话的绑定上连续调用两个有关联的代码,会发生什么情况. [ServiceContract] public interface IService { [OperationContract(IsOneWay = true)] void SetValue(

调用WCF不需要添加服务引用,使用一个WCFHelper类就可以

效果图: 调用过程: string WCFURL = "http://localhost:100/Service1.svc"; UserRequest user = new UserRequest { UserName = UserName.Text, Address = Address.Text, Email = Email.Text }; string request = "{\"request\":" + new JavaScriptSer

WCF大文件传输服务

由于项目需要,自己写一个基于WCF的大文件传输服务雏形.觉得有一定的参考价值,因此放在网上分享. 目前版本为v1.1特点如下: 1.文件传输端口为18650 2.上传和下载文件 3.支持获取文件传输状态(未开始.传输中.传输完成.出现错误) 4.支持获取文件传输进度(范围0~1) 5.支持获取文件传输速度速度(按文件传输速度大小 自动切换 KB/s 和 MB/s显示) 项目解决方案如下: 服务断包括WCF寄宿的控制台服务和Windows 服务以及文件传输服务核心 公共包括一些帮助类(文件HASH

WCF初探-11:WCF客户端异步调用服务

前言: 在上一篇WCF初探-10:WCF客户端调用服务 中,我详细介绍了WCF客户端调用服务的方法,但是,这些操作都是同步进行的.有时我们需要长时间处理应用程序并得到返回结果,但又不想影响程序后面代码部分的执行,这时我们就需要考虑使用异步的方式来调用服务.注意这里的异步是完全针对客户端而言的,与WCF服务契约的方法是否异步无关,也就是在不改变操作契约的情况下,我们可以用同步或者异步的方式调用WCF服务. WCF客户端异步调用服务方式: 通过代理类异步调用服务.就需要通过使用事件驱动的异步调用模型

WCF实现多个服务

本篇体验使用WCF实现2个服务.一个使用HTTP通讯,一个使用TCP通讯. 大致思路是: → 创建WCF服务以及接口,写2个接口→ 实现2个接口→ 为WCF创建一个控制台项目的宿主,配置App.config,开启宿主→ 创建一个Web客户端,创建对WCF服务的引用→ 在Web客户端,调用WCF服务,即调用WCF的代理类的实例方法 打开Visual Studio 2013,创建一个类库项目. 在类库下创建一个名称为"HelloServie"的WCF服务.随即,在项目中多了WCF相关的组件