2014-06-12 52 views
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秒內完成。

那麼,有沒有人知道如何解決這些緩慢的反應?

+0

您是否嘗試過循環併爲每個請求創建一個新的WebClient? – OneFineDay

+0

那麼,.NET頁面上只有1個webrequest。 頁面本身被AJAX調用6次。所以沒有循環服務器端。 – NLAnaconda

+0

當服務器方法進入和退出時,是否值得添加一個寫入到一個文本文件,以便首先查明請求是否正在排隊? – ForkandBeard

回答

0

發現問題。這不是網絡請求,而是Javascript的大量Ajax調用。 瀏覽器不允許超過一定數量的連接並將它們排隊。 所以我提出了1個請求,並處理了異步事物服務器端。