[英]WCF maxConnections property
I have a WCF service written in .net 4, and exposed over net.tcp. 我有一个用.net 4编写的WCF服务,并通过net.tcp公开。 Any time I try to set the MaxConnections property of the binding configuration to something higher than 10 I am AddressAlreadyInUseException.
每当我尝试将绑定配置的MaxConnections属性设置为高于10的值时,我就是AddressAlreadyInUseException。
Why would that be getting thrown on the MaxConnection setting? 为什么会被抛到MaxConnection设置?
(if it matters, I am on Server 2008 R2 Standard with a 4 core CPU and 4 gb ram) (如果重要的话,我使用的是带有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>
Your mex endpoint defines binding configuration which is not part of your configuration snippet. 您的mex端点定义的绑定配置不属于您的配置代码段。
MaxConnection defines pooling of connections for given port. MaxConnection定义给定端口的连接池。 At the moment you are using two endpoints which share single port - ApiService and Metadata endpoints.
目前,您正在使用两个共享单个端口的端点--ApiService和Metadata端点。 Before you changes setting in your binding configuration both enpoints used default value - 10 connections in a pool.
在更改绑定配置中的设置之前,两个enpoints都使用默认值 - 池中的10个连接。 When you changed the value it affected only one endpoint second endpoint still demands 10 connections => exception.
当您更改它只影响一个端点的值时,第二个端点仍然需要10个连接=>异常。 The solutions are:
解决方案是:
At least first idea should work. 至少第一个想法应该有效。
<endpoint
address="mex"
binding="netTcpBinding"
bindingConfiguration="NetTcpBinding"
contract="IMetadataExchange" />
use binding="netTcpBinding", not mexTcpBinding, so the two endpoints can shahre the same netTcpBinding configuration. 使用binding =“netTcpBinding”,而不是mexTcpBinding,因此两个端点可以使用相同的netTcpBinding配置。 The maxConnections value can be the same!
maxConnections值可以相同!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.