vb.net多个webclient请求很慢

时间:2014-06-12 14:25:15

标签: asp.net .net vb.net httpwebrequest webclient

我有以下情况。

使用Javascript我向vb.NET页面发出6个AJAX请求。

  $.ajax({type: 'POST', url: "/ajax/ajax.aspx?c=1"});
  $.ajax({type: 'POST', url: "/ajax/ajax.aspx?c=2"});
  $.ajax({type: 'POST', url: "/ajax/ajax.aspx?c=3"});
  $.ajax({type: 'POST', url: "/ajax/ajax.aspx?c=4"});
  $.ajax({type: 'POST', url: "/ajax/ajax.aspx?c=5"});
  $.ajax({type: 'POST', url: "/ajax/ajax.aspx?c=6"});

这些页面对其他服务器(网站)进行webrequest。 这大约需要1.5分钟。

当我评论webrequest并逐一尝试时,他们都会在20-30秒内回复。 因此,虽然请求是异步的,但似乎他们正在等待服务器端的先前完成。

Dim webClient As New System.Net.WebClient
webClient.Encoding = Encoding.UTF8
webClient.Proxy = Nothing
Dim result As String = webClient.DownloadString([website])

所以我在网上搜索并发现webclient的默认连接限制为2.这些线程中的答案告诉我在web.config中设置更高的maxconnection值。所以我做到了。

web.config:

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

但这似乎不起作用。我在IIS中重新启动了网站和应用程序池,但我仍然得到了响应&gt; 1.5分钟,而个人则在20秒内完成。

那么,有没有人知道如何解决这些缓慢的反应?

1 个答案:

答案 0 :(得分:0)

发现问题。这不是webrequest,而是Javascript调用的大量ajax。 浏览器不允许超过一定数量的连接并将它们排队。 所以我提出了1个请求并处理了服务器端的asynchrone事务。