我有一個silverlight 3應用程序,它向WCF服務發出幾個長時間運行的請求。在進行這些調用的過程中,任何其他稍後的WCF調用都會被silverlight 3排隊,因爲它只會同時執行兩個請求,從而導致應用程序吮吸:(如何從Silverlight中取消長時間運行的WCF請求3
如何取消長時間運行的阻止請求?
我有一個silverlight 3應用程序,它向WCF服務發出幾個長時間運行的請求。在進行這些調用的過程中,任何其他稍後的WCF調用都會被silverlight 3排隊,因爲它只會同時執行兩個請求,從而導致應用程序吮吸:(如何從Silverlight中取消長時間運行的WCF請求3
如何取消長時間運行的阻止請求?
沒有直接回答你的問題,但你可以使兩個以上同時傳出HTTP請求。
如果你的應用程序使得很多傳出HTTP請求的,你會被淨節流。默認情況下,淨只支持兩個同時發送的http請求,爲了解決這個問題,你需要在app.config中添加一個system.net部分。
這是一個示例代碼片段。
<system.net>
<defaultProxy>
<proxy usesystemdefault="false" bypassonlocal="true" />
<bypasslist>
<add address = "[^.]+\.[^.]+\.ntwk\.msn\.net$" />
<add address = "[^.]+\.phx\.gbl$" />
</bypasslist>
</defaultProxy>
<connectionManagement>
<add address = "*" maxconnection = "12" />
</connectionManagement>
</system.net>
我所知道的是不幸的是調用Abort()
你的代理,但要小心的唯一方法,你需要創建它之後一個新的實例(並重新訂閱已完成事件),因爲它關閉底層連接。另外請注意,這會消除當前異步請求中的全部,因此您需要在調用其他請求之前調用它。
這是否適用於Silverlight? – Kim 2010-03-31 00:15:33
不,它不適用於SL。 SL默認使用瀏覽器http堆棧,IE上限制爲6,chrome限制爲6,FF上限制其他數量。您可以將其切換爲使用客戶端http堆棧,但是您不能使用cookie或asp.net表單身份驗證,並且在所有瀏覽器上仍然限制爲6。 – Kir 2011-08-23 16:59:45