0
我有以下情況。vb.net多個webclient請求很慢
使用Javascript我做了6個AJAX請求到vb.NET頁面。
$.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"});
這些頁面對其他服務器(網站)做web請求。 這大約需要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])
所以我用Google搜索網頁四周,發現WebClient的具有2的默認連接限制在這些線程的答案告訴我設置在web.config中較高MAXCONNECTION值。所以我做了。
的web.config:
<system.net>
<connectionManagement>
<add address="*" maxconnection="1000"/>
</connectionManagement>
</system.net>
但是,這似乎並沒有工作。我重新啓動了IIS中的網站和應用程序池,但我仍然收到了響應時間大於1.5分鐘,而個人信息則在20秒內完成。
那麼,有沒有人知道如何解決這些緩慢的反應?
您是否嘗試過循環併爲每個請求創建一個新的WebClient? – OneFineDay
那麼,.NET頁面上只有1個webrequest。 頁面本身被AJAX調用6次。所以沒有循環服務器端。 – NLAnaconda
當服務器方法進入和退出時,是否值得添加一個寫入到一個文本文件,以便首先查明請求是否正在排隊? – ForkandBeard