设置WCF配置以便在客户端上使用时,maxBufferPoolSize
每个binding
上限是一个问题,还是按endpoint
创建的池?
基本上,使用bindings/basicHttpBinding
条目:
<binding name="LargeBufferBinding" closeTimeout="00:05:00" openTimeout="00:05:00"
receiveTimeout="00:30:00" sendTimeout="00:05:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="4194304" maxBufferSize="4194304" maxReceivedMessageSize="4194304"
textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"
messageEncoding="Text">
<readerQuotas maxDepth="32" maxStringContentLength="4194304" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
以后,client
条目:
<endpoint address="..." binding="basicHttpBinding" bindingConfiguration="LargeBufferBinding" contract="..." name="Svc1"/>
<endpoint address="..." binding="basicHttpBinding" bindingConfiguration="LargeBufferBinding" contract="..." name="Svc2"/>
<endpoint address="..." binding="basicHttpBinding" bindingConfiguration="LargeBufferBinding" contract="..." name="Svc3"/>
<endpoint address="..." binding="basicHttpBinding" bindingConfiguration="LargeBufferBinding" contract="..." name="Svc4"/>
对于那些4MB或16MB的WCF服务,客户端是否会被限制在缓冲池中?