高同時WCF構成
6172 ワード
WCFをサービスインタフェースとして使用する場合、TCPモードはHttpよりも効率的であることは間違いなく、Binary/MTOMフォーマットのバインドもTextフォーマットのバインドよりも効率的である.
2つのendpoint、1つはデバッグに使用されます:ms-mexのbindingはWCFデバッグツールとリモートオブジェクトアプリケーションを便利にするために使用され、もう1つは実際の動作モード構成:customBindingです.
インタフェースの同時性数を高めるために,同時性に及ぼす各パラメータの影響を特化した実験的custonBindingにおいて,以下の構成は,現在の実験的tpsよりも高いパラメータ構成である.
2つのendpoint、1つはデバッグに使用されます:ms-mexのbindingはWCFデバッグツールとリモートオブジェクトアプリケーションを便利にするために使用され、もう1つは実際の動作モード構成:customBindingです.
インタフェースの同時性数を高めるために,同時性に及ぼす各パラメータの影響を特化した実験的custonBindingにおいて,以下の構成は,現在の実験的tpsよりも高いパラメータ構成である.
<system.serviceModel>
<services>
<service name="GW.Stone.BLL.Wcf.StoneService" behaviorConfiguration="NetTcpBehavior">
<!-- , 1800tps, -->
<endpoint address="net.tcp://127.0.0.1:50061/GWStoneService" binding="customBinding" contract="GW.Stone.BLL.Wcf.IStoneService" bindingConfiguration="MySessionBinding">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<!--ms-mex , 1000tps, wcf 。
mex , proxy ,VS app.config 。-->
<endpoint address="net.tcp://127.0.0.1:50062/GWStoneService" binding="mexTcpBinding" contract="IMetadataExchange" />
</service>
</services>
<!--behavior 。-->
<behaviors>
<serviceBehaviors>
<behavior name="NetTcpBehavior">
<serviceMetadata httpGetEnabled="false" />
<!-- -->
<serviceDebug includeExceptionDetailInFaults="True" />
<!--
ServiceThrottlingBehavior , , 。
http://msdn.microsoft.com/zh-cn/library/system.servicemodel.description.servicethrottlingbehavior(v=vs.110).aspx
MaxConcurrentCalls ServiceHost 。 16 。
MaxConcurrentInstances ServiceHost InstanceContext 。 MaxConcurrentSessions MaxConcurrentCalls 。
MaxConcurrentSessions ServiceHost 。 。 100 。
, , ServiceThrottlingBehavior 。
<serviceThrottling> 。
-->
<serviceThrottling maxConcurrentCalls="1000" maxConcurrentInstances="1000" maxConcurrentSessions="1000" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<customBinding>
<!--WSHttpBindingBase
http://msdn.microsoft.com/zh-cn/library/vstudio/System.ServiceModel.WSHttpBindingBase_properties(v=vs.100).aspx
-->
<binding name="MySessionBinding">
<!--transactionFlow , WS-Transactions。
, true; false。 false。-->
<transactionFlow />
<!--binaryMessageEncoding Windows Communication Foundation (WCF) 。
http://msdn.microsoft.com/zh-cn/library/ms731780(v=vs.110).aspx
-->
<binaryMessageEncoding />
<!--reliableSession , , 。
http://msdn.microsoft.com/zh-cn/library/System.ServiceModel.Channels.ReliableSessionBindingElement(v=vs.110).aspx
maxPendingChannels 。 。 4。 , 16384。
。 , , ( )。
。 , 。
-->
<reliableSession maxPendingChannels="20"/>
<!--tcpTransport TCP 。
http://msdn.microsoft.com/zh-cn/library/ms731366(v=vs.110).aspx
listenBacklog Web 。 connectionLeaseTimeout 。
, Web 。
ListenBacklog ,WCF , , 。 16 * 。
maxPendingConnections , 100。
maxPendingAccepts 。 2。
-->
<tcpTransport listenBacklog="400" maxPendingConnections="1000" maxPendingAccepts="10" />
</binding>
</customBinding>
</bindings>
</system.serviceModel>