簡體   English   中英

每個會話的線程限制?

[英]Thread limit per session?

我有一個aspx頁面,它通過Jquery Ajax請求異步加載10個圖表。 正在向實現IReadOnlySessionState的通用處理程序發出請求,因為需要訪問會話變量,但它是一個讀取,這樣我就不會受到asp.net實現的讀寫會話鎖的影響。

通過調試器,我能夠看到調用是異步發生的,但似乎存在一個限制,因為有些調用僅在前幾個調用完成后才進入代碼。 我不確定這是在IIS上的設計還是web.config中的屬性。

一個用戶/會話一次可以擁有的線程限制嗎?

IIS和asp.net處理線程的方式取決於您使用的IIS版本。 workerthreads的數量是有限制的,並且必須保留的線程數量有上限。 這意味着一次只能執行一定數量的線程。

請參閱: http//blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx

如果您的ASP.NET應用程序使用Web服務(WFC或ASMX)或System.Net通過HTTP與后端進行通信,則可能需要增加connectionManagement / maxconnection。 對於ASP.NET應用程序,autoConfig功能限制為12 * #CPU。

也來自同一篇文章: http//support.microsoft.com/kb/821268

如果您長時間運行來自AJAX的HTTP請求,最好的辦法是執行異步http請求處理程序。 然后請求可以在IO線程上等待,因為asp.net擁有比workerthreads更多的IO線程。

請參閱: http//www.asp.net/web-forms/tutorials/aspnet-45/using-asynchronous-methods-in-aspnet-45

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM