0

使用具有负载均衡器的 NetTcpbinding 的 WCF 时,我面临性能不佳的问题

我们有使用 WCF(net.tcp 协议)的 win 表单应用程序。在生产中,我们有 3 台带有负载均衡器 (F5) 的服务器的网络农场。WCF 托管在 IIS 中。我们仅使用 1 个用户进行测试

现在,当我们将 WCF 指向特定服务器时(使用服务器名称或 IP);应用程序确实表现良好。但是,当我们提供 DNS 名称(以便请求通过负载均衡器)时,性能会显着下降。网络团队从那里说一切正常。请帮忙

以下是我有锡 WCF web.config 文件的配置。

  <system.serviceModel>
 <diagnostics performanceCounters="All" />
    <services>
      <service behaviorConfiguration="GetProxyEnabled" name="companyname.InvOps.ServiceLayer.PAServiceServer">
    <host>
          <baseAddresses>
<add baseAddress="net.tcp://USHOUIOWEB012VT/PAService"/>
            <!--<add baseAddress="net.tcp://xxx.uat.companyname.net/PAService/"/>-->
          </baseAddresses>
        </host>
        <endpoint address="netTcpAddress" behaviorConfiguration="NetTcpEndPointBehaviour" binding="netTcpBinding" bindingConfiguration="NetTcpBinding" contract="companyname.InvOps.ServiceLayer.IPAService" />
        <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="GetProxyEnabled">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
          <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
    <serviceThrottling maxConcurrentCalls="200" maxConcurrentInstances="400" maxConcurrentSessions="200"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="NetTcpEndPointBehaviour">
          <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <bindings>
      <netTcpBinding>
        <binding name="NetTcpBinding" 
                 closeTimeout="05:45:00"
                 openTimeout="05:45:00"
                 receiveTimeout="05:45:00"
                 sendTimeout="05:45:00"
     transactionFlow="false" 
     transferMode="Buffered" 
     transactionProtocol="OleTransactions" 
     hostNameComparisonMode="StrongWildcard" 
     listenBacklog="10" 
     maxBufferPoolSize="2147483647" 
     maxBufferSize="2147483647" 
     maxConnections="10" 
     maxReceivedMessageSize="2147483647">
          <readerQuotas maxDepth="32" 
      maxStringContentLength="2147483647" 
      maxArrayLength="2147483647" 
      maxBytesPerRead="2147483647" 
      maxNameTableCharCount="2147483647" />
          <reliableSession ordered="true" 
                           inactivityTimeout="05:45:00"
                           enabled="false" />
          <security mode="Transport">
            <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign"/>
          </security>
        </binding>
      </netTcpBinding>
    </bindings>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true"  aspNetCompatibilityEnabled="true"/>
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

非常感谢任何反馈或建议。当使用 WCF 和 NetTcpBinding 时,F5 上的推荐设置是什么。

4

1 回答 1

0

我现在开始工作了。这是负载平衡配置问题。我们已将虚拟服务器类型从标准更改为性能(第 7 层)。性能没有提高到可接受的范围。

于 2013-07-08T17:12:49.077 回答