我有以下情况。
使用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秒内完成。
那么,有没有人知道如何解决这些缓慢的反应?
答案 0 :(得分:0)
发现问题。这不是webrequest,而是Javascript调用的大量ajax。 浏览器不允许超过一定数量的连接并将它们排队。 所以我提出了1个请求并处理了服务器端的asynchrone事务。