在考慮downvoting或告訴我「google it」之前,請仔細閱讀該問題。這是舊的/經典的問題,但舊的/經典的解決方案不再有效。這是非常簡單的場景在Visual Studio二千零十五分之二千零十三重現:ASP.NET MVC 5個併發請求即使被禁用也會排隊
2)打開控制器\ HomeController.cs並添加屬性控制器和 「睡眠」 行動:
[SessionState(System.Web.SessionState.SessionStateBehavior.Disabled)]
public class HomeController : Controller
{
public ActionResult Sleep(int? time)
{
System.Threading.Thread.Sleep(time ?? 3000);
return Content("OK");
}
public ActionResult Index()
{
...
3)打開文件:使用以下視圖\首頁\ Index.cshtml並添加/替換內容的HTML:
<script>
function ReqClick() {
var startTime = Date();
$.ajax("/Home/Sleep")
.success(function() {
var log = $("#log");
var endTime = Date();
log.text(log.text() + "Start: " + startTime.toString() + " === " + endTime.toString());
});
};
</script>
<button type="button" onclick="ReqClick();">
Request
</button>
<div>
<textarea id="log" style="width:640px; height:480px"></textarea>
</div>
4)運行它(如果你使用IIS或IIS Express或Vs的開發服務器)並不重要 - 打開首頁/索引。點擊F12打開開發工具,打開網絡選項卡。在主頁上點擊兩次「請求」按鈕。你可以看到,第二個請求需要近6秒時:
在控制器調試模式下,你可以看到,會議爲空:
Cookies是完全空(ASP.NET Session ID不存在)
請讓我知道我錯過了什麼?
添加以下web.config中的設置不起作用或者:
<sessionState mode="Off"/> <pages enableSessionState="ReadOnly"/>
如果您使用的東西就像[Fiddler](http://www.telerik.com/fiddler)調用服務器方法一樣,您會注意到請求在客戶端而不是服務器上排隊。您的服務器端代碼確實允許多個請求,這是瀏覽器將它們排隊。嘗試使用Fiddler中的Composer來創建您的測試請求。 –
更多的證據是如果你在你的ajax請求中設置'cache:false'。 –
我沒有得到任何延遲。問題在於你本地。該代碼適用於我。無論多次請求,每次請求3秒鐘。 – rism