2012-03-12 106 views
15

剛剛安裝IIS Express 7.5,並試圖調試ASP.NET MVC 3應用程序中的併發問題。然而,我似乎無法讓Web服務器同時處理請求,它們只是一個接一個地執行。IIS Express 7.5不同時處理請求

我正在運行Apache Bench來模擬併發負載,但它只是排隊等候。

有人有什麼想法嗎?

謝謝。

+0

如果您在Firefox中使用$ .getJSON,請求將會排隊 - 這是一個Firefox的事情...嘗試查看其他瀏覽器是否出現此問題。 – 2013-12-20 23:50:19

+0

@EranBetzalel OP陳述他正在使用Apache Bench – 2014-01-10 14:58:42

+0

@JamesHolwell對不起,不知怎的,我已經錯過了,但也許它有與Firefox相同的問題行爲 - 我不確定。 – 2014-01-10 16:10:16

回答

21

如果您正在使用的會話和重用你的併發請求的會話ID,ASP.NET將排隊的請求,因爲它需要爲每個請求的會話的排他鎖。

http://msdn.microsoft.com/en-us/library/ms178581.aspx

併發請求和會話狀態兩者

訪問ASP.NET會話狀態是每個會話,這意味着獨家 ,如果兩個不同的用戶進行的併發請求,訪問每個 單獨的會話同時授予。但是,如果兩個併發的 請求是針對同一會話(通過使用相同的SessionID 值),第一個請求獲得對會話 信息的獨佔訪問。第二個請求僅在第一個請求 完成後才執行。(如果由於第一個請求超出 鎖定超時而釋放信息上的獨佔鎖定 ,則第二個會話也可以訪問。)如果指令中的EnableSessionState值設置爲ReadOnly,則只讀會話 信息不會導致會話數據的獨佔鎖定。 但是,會話數據的只讀請求可能仍然需要等待 才能清除會話數據的讀寫請求所設置的鎖定。