WCF可靠性会话之服务分流

本文介绍如何在WCF中配置可靠性绘画(reliablesession)来增强消息传递的稳定性,并通过ServiceThrottleBehavior调整服务的吞吐量控制参数如最大并发请求(maxConcurrentCalls)等。

 

可靠性绘画答条件:

           (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>

 

转载于:https://www.cnblogs.com/yingger/p/3750523.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值