2010-10-21 76 views
1

我想使用WCF服务[NetTcp](在c#中)为Web场(用于网站)和NLB负载平衡(用于服务)配置ASP.NET网站项目。我想为它配置以下选项。Web场和负载平衡环境中的WCF服务配置

NetTcpBinding.maxConcurrentCalls,NetTcpBinding.ListenBacklog和NetTcpBinding.MaxConnections

注意:在我的WCF服务项目改变NetTcpBinding.ListenBacklog和NetTcpBinding.MaxConnections的价值,更多的10台机器的配置,这是默认值。我得到了例外。当我在网站中更改此值时,它工作正常。由于这个原因,我不得不保持默认配置。不知道为什么会这样。如果有人能解释这一点,这将是有益的。

下面的参考给出了如何在给定的环境中进行配置的想法,但并没有说明如何去做。

编号:http://msdn.microsoft.com/en-us/library/ee377061%28BTS.10%29.aspx

更新:

让我简化了一下。可以说我有以下配置。

  • 2 Web Farm中的IIS服务器。
  • NLB中的3个WCF服务服务器(NetTcp)
  • 默认配置。为单个实例。
    • NetTcpBinding.ListenBacklog:10
    • NetTcpBinding.MaxConnections:10
    • NetTcpBinding.maxConcurrentCalls:16

现在会是怎样在这种环境下我的配置设置。它会与上面相同还是如下。

  • 建议配置。用于单WebFarm/NLB
    • NetTcpBinding.ListenBacklog:30(10 * 3)
    • NetTcpBinding.MaxConnections:30(10 * 3)
    • NetTcpBinding.maxConcurrentCalls:48(16 * 3)

回答

0

对于使用Windows NLB的负载平衡net.tcp,您应该在MSDN中建议使用更短的leaseTimeout,建议值为30秒。确保您使用每个通话服务。配置NLB以平衡每个端点的个别端口(如果您有多个端点),而不是端口范围,因为这会提高性能。确保亲和力未被选中。
我使用已经使我受益匪浅如下

<customBinding> 

     <binding name="netTcpBindingConfiguration_custom" 
       closeTimeout="00:01:00" 
       openTimeout="00:01:00" 
       receiveTimeout="00:10:00" 
       sendTimeout="00:01:00" > 
      <transactionFlow/> 
      <windowsStreamSecurity/> 
      <binaryMessageEncoding/> 

      <tcpTransport maxBufferPoolSize="524288" 
         maxReceivedMessageSize="5000000" 
         connectionBufferSize="8192" 
         manualAddressing="false" 
         hostNameComparisonMode="StrongWildcard" 
         channelInitializationTimeout="00:00:05" 
         maxBufferSize="5000000" 
         maxPendingConnections="20" 
         maxOutputDelay="00:00:00.2000000" 
         maxPendingAccepts="5" 
         transferMode="Buffered" 
         listenBacklog="20" 
         portSharingEnabled="false" 
         teredoEnabled="false"> 
      <connectionPoolSettings groupName="default" 
            leaseTimeout="00:00:30" 
            idleTimeout="00:02:00" 
            maxOutboundConnectionsPerEndpoint="100"/> 
      </tcpTransport> 
     </binding> 
</customBinding> 
+0

感谢会尝试这些设置,让你知道出一个自定义绑定。 你能否告诉我在WCF设置中更改NetTcpBinding.ListenBacklog和NetTcpBinding.MaxConnections值时发生的异常。 – BigBoss 2010-10-21 11:39:14