Prima di pensare al downvoting o di dirmi "google it", leggere il problema con più attenzione. Questo è un problema vecchio/classico ma la soluzione vecchio/classico non funziona più. Qui è molto semplice scenario di riprodurre in Visual Studio 2013/2015:ASP.NET MVC 5 richieste concorrenti sono in coda anche con Sessione disabilitata
1) Creare un'applicazione Web ASP.NET MVC utilizzando template:
2) Controller Open \ HomeController.cs e aggiungere attributo controller e azione "Sleep":
[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) aprire il file: \ Visualizzazioni Home \ Index.cshtml e aggiungere/sostituire html contenuto con il seguente:
<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) Eseguire esso (non importa se si sta utilizzando IIS o IIS Express o Vs Dev Server) - Open Home/Index. Fare clic su F12 per aprire lo strumento di sviluppo, aprire la scheda di rete. Nella pagina iniziale fai clic due volte sul pulsante "Richiesta" due volte. Si può vedere che la seconda richiesta prende quasi 6 secondi:
in modalità di debug nel controller che si può vedere che sessione è nullo:
I cookie sono totalmente vuoto (ID sessione ASP.NET assente)
Per favore fatemi sapere cosa mi manca?
Aggiunta l'impostazione sottostante per web.config non aiuta:
<sessionState mode="Off"/> <pages enableSessionState="ReadOnly"/>
Se si usa qualcosa come [Fiddler] (http://www.telerik.com/fiddler) per chiamare nel metodo server noterete che le richieste sono accodate sul client e non sul server. Il tuo codice lato server consente più richieste, è il browser che le mette in coda. Prova il compositore in Fiddler per creare le tue richieste di test. –
Prova ulteriore è se si imposta 'cache: false' sulla richiesta ajax. –
Non ho alcun ritardo. Il problema è locale per te. Il codice funziona bene per me. 3 secondi per richiesta per molte richieste. – rism