C# ChannelFactory最大连接池
我正在创建一个测试工具来强调服务器的负载。我创建了许多不同的线程,它们分别向服务器发送请求。它似乎受到了环境的限制。它在进行实际服务调用时遇到瓶颈,例如:C# ChannelFactory最大连接池,c#,multithreading,wcf,channelfactory,C#,Multithreading,Wcf,Channelfactory,我正在创建一个测试工具来强调服务器的负载。我创建了许多不同的线程,它们分别向服务器发送请求。它似乎受到了环境的限制。它在进行实际服务调用时遇到瓶颈,例如: _proxy.MyServiceCall(...); 我尝试了几种不同的方法: 使用由所有线程共享的单个静态ChannelFactory 为每个线程创建新的通道工厂 每次呼叫创建一个新的频道工厂 所有这些导致了相当相似的性能。通道工厂正在使用的可用连接似乎有一个全局静态池。我试过查这个,但什么也找不到。你能了解更多吗?你认为我认为存在静
_proxy.MyServiceCall(...);
我尝试了几种不同的方法:
- 使用由所有线程共享的单个静态ChannelFactory
- 为每个线程创建新的通道工厂
- 每次呼叫创建一个新的频道工厂
<configuration>
<system.serviceModel>
<client>
<endpoint binding="wsHttpBinding" bindingConfiguration="SynchronizationServiceBinding" contract="My.Namespace.ISynchronizationService" name="ClientBinding">
</endpoint>
</client>
<bindings>
<wsHttpBinding>
<binding name="SynchronizationServiceBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="10485760">
<security mode="Transport">
<transport clientCredentialType="None"/>
</security>
<reliableSession enabled="false"/>
<readerQuotas maxArrayLength="1000000"/>
</binding>
</wsHttpBinding>
</bindings>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup> </configuration>
事实证明,我所需要做的就是为system.net connectionManagement添加一个配置:
<system.net>
<connectionManagement>
<add address = "*" maxconnection = "1000" />
</connectionManagement>
</system.net>
请注意,此线程中的问题与我遇到的问题相同:您是否已配置?我没有访问服务器配置的权限,但我知道服务器能够处理更多的调用,然后测试工具当前能够发送,因此限制在测试工具的某个位置。我已经添加了测试工具的配置。谢谢!我试着做与你完全相同的事情,并考虑创建多个流程来解决这个问题。