在考虑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