多次调用同一Web服务阻止?

时间:2010-11-18 12:15:49

标签: c# asp.net asp.net-3.5

我们有一个页面向第三方网络服务发出请求。当负载很重时,这个响应时间会显着延长,但是第三方报告说处理时间保持不变。有时间表明,从他们收到请求到他们发送回来的时间总是大约1.5-2.0秒。现在我们正在经历超过20秒的等待时间。我对ASP.NET的理解是,每个请求都将在IIS线程池线程上运行,并向第3方服务返回并处理请求。所以我真的不明白我们可能阻止什么。有什么我想念的吗? IIS之外是否存在阻止的阈值限制?

如果我遗失了某些内容,那么涵盖此主题的实体书籍推荐也将是一个非常受欢迎的补充。

2 个答案:

答案 0 :(得分:10)

.NET限制根据HTTP规范的建议,对单个主机强制执行2个并发Web请求的限制。因此,在您的情况下,不是Web服务需要更多时间来执行,而是您的应用程序将请求延迟到此约束中。

您可以通过将此密钥添加到配置文件来提高Web服务的限制:

  <system.net>
    <connectionManagement>
      <!-- specific servers... -->
      <add address="http://example.org" maxconnection="20" />

      <!-- ...or any server -->
      <add address="*" maxconnection="8" />
    </connectionManagement>
  </system.net>

答案 1 :(得分:3)