繁体   English   中英

WCF maxConnections属性

[英]WCF maxConnections property

我有一个用.net 4编写的WCF服务,并通过net.tcp公开。 每当我尝试将绑定配置的MaxConnections属性设置为高于10的值时,我就是AddressAlreadyInUseException。

为什么会被抛到MaxConnection设置?

(如果重要的话,我使用的是带有4核CPU和4 GB RAM的Server 2008 R2 Standard)

    <binding name="NetTcpBinding" closeTimeout="00:01:00"
          openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
          transferMode="Buffered" hostNameComparisonMode="StrongWildcard"
          maxBufferPoolSize="524288" maxBufferSize="25000000"
          maxReceivedMessageSize="25000000" maxConnections="50">
          <readerQuotas maxDepth="32" maxStringContentLength="25000000"
            maxArrayLength="25000000" maxBytesPerRead="25000000" maxNameTableCharCount="25000000" />
          <security mode="None" />
    </binding>

    <service behaviorConfiguration="ApiService.ServiceBehavior" name="Api.Service.PlatformApiService">
      <endpoint
        address="/Search"
        binding="netTcpBinding"
        bindingConfiguration="NetTcpBinding"
        contract="IApiService" />        
      <endpoint
        address="mex"
        binding="mexTcpBinding"
        bindingConfiguration="NetTcpBinding"
        contract="IMetadataExchange" />

      <host>
        <baseAddresses>
          <add baseAddress="net.tcp://localhost:8094/Api/" />
        </baseAddresses>
      </host>
    </service>

您的mex端点定义的绑定配置不属于您的配置代码段。

MaxConnection定义给定端口的连接池。 目前,您正在使用两个共享单个端口的端点--ApiService和Metadata端点。 在更改绑定配置中的设置之前,两个enpoints都使用默认值 - 池中的10个连接。 当您更改它只影响一个端点的值时,第二个端点仍然需要10个连接=>异常。 解决方案是:

  • 在不同的端口上公开元数据端点。
  • 为Mex端点创建自定义绑定。 默认的mexTcpBinding不允许更改MaxConnections。 在自定义绑定中为MaxConnection设置相同的值。
  • 尝试使用端口共享

至少第一个想法应该有效。

<endpoint
        address="mex"
        binding="netTcpBinding" 
        bindingConfiguration="NetTcpBinding"
        contract="IMetadataExchange" />

使用binding =“netTcpBinding”,而不是mexTcpBinding,因此两个端点可以使用相同的netTcpBinding配置。 maxConnections值可以相同!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM