Avant de penser à la fonctionnalité de downvotation ou de me dire "google it", veuillez lire le problème plus attentivement. C'est un problème ancien/classique mais la solution ancienne/classique ne fonctionne plus. Voici le scénario très simple à reproduire dans Visual Studio 2013/2015:Les demandes simultanées ASP.NET MVC 5 sont mises en file d'attente, même si elles sont désactivées. Session
1) Créer une application ASP.NET Web en utilisant le modèle MVC:
2) Contrôleurs ouverts \ HomeController.cs et ajouter attribut contrôleur et d'action "veille":
[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) Ouvrir le fichier: Views \ Home \ Index.cshtml et ajouter/remplacer le contenu HTML avec les éléments suivants:
<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) Lancez-(n'a pas d'importance si vous utilisez IIS ou IIS Express ou Vs Dev Server) - Open Home/Index. Cliquez sur F12 pour ouvrir l'outil de développement, ouvrez l'onglet réseau. Sur la page d'accueil, cliquez deux fois sur le bouton "Demande". Vous pouvez voir que la deuxième demande prend près de 6 secondes:
En mode débogage dans le contrôleur, vous pouvez voir cette session est nulle:
Les cookies sont totalement vide (l'ID de session ASP.NET est absent)
S'il vous plaît laissez-moi savoir ce que je manque?
Ajout du paramètre ci-dessous pour web.config ne permet pas non plus:
<sessionState mode="Off"/> <pages enableSessionState="ReadOnly"/>
Si vous utilisez quelque chose comme [Fiddler] (http://www.telerik.com/fiddler) pour appeler dans la méthode du serveur, vous remarquerez que les requêtes sont mises en file d'attente sur le client et non sur le serveur. Le code côté serveur autorise plusieurs demandes, c'est le navigateur qui les met en file d'attente. Essayez le compositeur dans Fiddler pour créer vos demandes de tests. –
Plus de preuve de ceci est si vous définissez «cache: false» sur votre requête ajax. –
Je n'ai pas de retard du tout. Le problème vous est local. Le code fonctionne bien pour moi. 3 secondes par demande pour autant de demandes. – rism