首页 > 技术文章 > WCF之maxConnections

plus301 2017-08-09 19:15 原文

<bindings>
     <netTcpBinding>
          <binding name="TcpBinding" closeTimeout="00:01:00" openTimeout="00:01:00"
                    receiveTimeout="00:10:00" sendTimeout="00:01:00" transactionFlow="false"
                    transferMode="Buffered" transactionProtocol="OleTransactions"
                    hostNameComparisonMode="StrongWildcard" listenBacklog="10"
                    maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10"
                    maxReceivedMessageSize="65536">
              <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
              <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
              <security mode="Transport">
<transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" /> <message clientCredentialType="Windows" />
</security> </binding> </netTcpBinding> </bindings>

  ================================================================

当maxConnections > 10时,服务会抛出异常EndpointNotFoundException。

解决方法:修改mexTcpBinding的端口,不要与baseAddress的端口一样。比如:

<service name="WcfServiceLibrary1.Service1" behaviorConfiguration="WcfBehavior">
        <endpoint address="" binding="netTcpBinding" bindingConfiguration="netTcpBindingConfig" contract="WcfServiceLibrary1.IService1" />
        <endpoint address="net.tcp://localhost:7733/Service1/mex" binding="mexTcpBinding" name="MEX" contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="net.tcp://localhost:8733/Service1" />
          </baseAddresses>
        </host>
</service>

  

推荐阅读