Pourquoi ne Session_Start Mondiale.asax.cs provoquer des problèmes de performances?

Lorsque je crée un vide Session_Start gestionnaire Mondiale.asax.cs il provoque une importante frappé lors du rendu des pages dans le navigateur.

Comment reproduire:

Créer un vide ASP.NET MVC 3 application web (je suis en utilisant MVC 3 RC2).
Ensuite, ajoutez un contrôleur de la Maison avec ce code:

public class HomeController : Controller
{
  public ActionResult Index()
  {
    return View();
  }
  public ActionResult Number(int id)
  {
    return Content(id.ToString());
  }
}

Prochaine créer une vue Home/Index.cshtml et placer celui-ci dans le CORPS de l'article:

@for (int n = 0; n < 20; n++)
{ 
  <iframe src="@Url.Content("~/Home/Number/" + n)" width=100 height=100 />
}

Lorsque vous exécutez cette page, vous verrez 20 IFRAMEs apparaissent sur la page, chacun avec un numéro à l'intérieur. Tout ce que je fais ici est de créer une page qui se charge de plus de 20 pages en coulisses. Avant de continuer, prenez note de la façon dont rapidement ces 20 pages de charge (actualiser la page plusieurs fois pour répéter les charges).

Ensuite, allez à votre Global.asax.cs et ajoutez cette méthode (oui, le corps de la méthode est vide):

protected void Session_Start()
{
}

Maintenant, exécutez à nouveau la page. Cette fois, vous remarquerez que le 20 IFRAMEs charge beaucoup plus lentement, l'un après l'autre d'environ 1 seconde d'intervalle. C'est étrange parce que nous ne sommes pas en train de faire quoi que ce soit dans la fonction Session_Start ... c'est juste une méthode vide. Mais ce qui semble être suffisant pour causer le ralentissement dans les autres pages.

Quelqu'un sait pourquoi ce qui se passe, et, mieux encore, quelqu'un at-il un fix/solution de contournement?

Mise à jour

J'ai découvert que ce problème se produit uniquement lorsque le débogueur est attaché (en cours d'exécution avec la touche F5). Si vous l'exécuter sans le débogueur (Ctrl-F5), puis ça semble être ok. Donc, c'est peut-être pas un problème important, mais c'est toujours étrange.

J'ai rencontré ce problème sur les requêtes AJAX dans un SPA. Me dirigea loin de l'aide de SessionState.

OriginalL'auteur Mike | 2010-12-15