@kev, им определенно следовало поместить это в первый абзац! мне потребовалась лучшая часть 10 лет, чтобы узнать об этой функции. никогда даже не замечал этого, пока в Fiddler не произошли те странные вещи (баги), которые заставили бы вас копаться глубже

ажется, что ASP.net ставит в очередь все запросы, использующие один и тот же идентификатор сеанса. Допустим, у вас есть 3 страницы.

Default.aspx

protected void Page_Load(object sender, EventArgs e)
{
    Session["asdf"] = "LOLZ";
}

Попадание на эту страницу, очевидно, создаст новую сессию, если она не существует.

X-AspNet-Version: 2.0.50727
Set-Cookie: ASP.NET_SessionId=ibjphuv0aiafqi453tyze345; path=/; HttpOnly

Тогда вы нажмете Hang.aspx

protected void Page_Load(object sender, EventArgs e)
{
    Thread.Sleep(10000);
}

И сразу после того, как вы нажмете любую другую страницу, на которую будет передан этот идентификатор сеанса, не имеет значения, что он делает, давайте назовем его Test.aspx.

Последовательность загрузки такая.

Request            Timeline
"GET /"            |*|
"GET /Hang.aspx"       |******************************************|
"GET /Test.aspx"            |**************************************|

Я думаю, мой вопрос заключается в том, как отключить эту функцию. Я понимаю, что полезно иметь так, чтобы состояние сеанса могло быть более предсказуемым, однако в моем случае длительная загрузка страницы отчетов убивает способность пользователей к многозадачности.

Ответы на вопрос(1)

Ваш ответ на вопрос