c# - ChannelFactory 最大连接池

标签 c# multithreading wcf channelfactory

我正在创建一个测试工具来对服务器进行压力加载。我创建了许多不同的线程来向服务器发送单独的请求。它似乎受到 ChannelFactory 的限制.它在进行实际服务调用时存在瓶颈,例如:

_proxy.MyServiceCall(...);

我尝试了几种不同的方法:

  • 使用一个由所有线程共享的静态 ChannelFactory
  • 为每个线程创建一个新的 channel 工厂
  • 为每次调用创建一个新的 channel 工厂

所有这些都会产生非常相似的性能。 channel 工厂正在使用似乎是可用连接的全局静态池。我试过查找这个但找不到任何东西。你会知道更多吗?您认为我关于静态连接池的猜测是否正确?如果是这样,您知道如何配置吗?

这是测试应用程序的当前配置:

<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>

参见: Element (Network Settings)

请注意,此线程中的问题与我遇到的问题相同:IIS/WAS only handles two requests per client in parallel

关于c# - ChannelFactory 最大连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8579507/

相关文章:

c# - 无法在 Windows XP 计算机上安装/卸载 Async CTP

c# - ASP.net MVC 4 显示图像

iphone - Objective-C 的多线程库

java - 这是循环死锁还是循环等待?

c# - 传递 orderBy 或 OrderByDescending 作为参数

c# - 如何确定 HTTP 响应是否完整

winforms - 任务完成后才显示进度条

c# - WCF:如何在单独的项目中将实现逻辑用于契约(Contract)接口(interface)?

c# - 来自 CreateChannelWithIssuedToken 的 WCF channel 仍在发送 'requestsecuritytoken' 请求

c# - 序列化对函数的调用