2010-10-21 119 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