单个客户端发起多个并发的WCF调用到服务端

22

我有一个调用另一台机器上的服务的服务,最多只能获取2个并发连接。我尝试更改WCF服务行为的限制,但没有效果。我读过说这是由于客户端机器到服务器的HTTP并发连接限制为2。我该如何解决这个问题?两台机器上的操作系统都是Server 2003。

配置:

<serviceBehaviors>
    <behavior name="MyServiceTypeBehaviors">
      <serviceMetadata httpGetEnabled="true" />
      <serviceThrottling maxConcurrentCalls="100" maxConcurrentInstances="100" maxConcurrentSessions="100"/>
    </behavior>
  </serviceBehaviors>

<system.net>
<connectionManagement>
  <add address="*" maxconnection="100" />
</connectionManagement>

2个回答

35

您需要在客户端代码中解决此问题(从调用其他服务的服务中)。在服务应用程序的初始化中使用以下代码以增加连接:

System.Net.ServicePointManager.DefaultConnectionLimit = 10;

在单元测试之外进行测试后,它为我解决了问题。 - MiguelSlv

10

尝试在客户端应用的app.config中添加以下内容:

<system.net>
    <connectionManagement>
        <add address="*" maxconnection="100" />
    </connectionManagement>
</system.net>

添加此配置后,应用程序会受到任何影响吗? - Himanshu Jain
@HimanshuJain https://dev59.com/65Pfa4cB1Zd3GeqPA0AD增加ServicePointManager.DefaultConnectionLimit的缺点是什么? - Kmaczek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接