【发布时间】:2011-05-18 03:58:49
【问题描述】:
在我看来,ASP.net 将所有使用相同会话 ID 的请求排队。假设您有 3 页。
默认.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);
}
在您点击任何其他将传递此会话 ID 的页面后,不管它是否执行任何操作,我们都将其命名为 Test.aspx。
加载顺序是这样的。
Request Timeline
"GET /" |*|
"GET /Hang.aspx" |******************************************|
"GET /Test.aspx" |**************************************|
我想我的问题是如何禁用此功能。我知道这样做很有用,这样会话状态可以更可预测,但是在我的情况下,长时间运行的报告页面加载正在扼杀用户的多任务能力。
【问题讨论】:
-
你如何测试这个? Visual Studio 中的 IIS 或 Cassini 开发服务器?
-
Windows Server 2008、7 Professional 和 VS 2010 Dev Server 上的 IIS。
-
很好的问题,我以前从未想过这个问题。
标签: asp.net session blocking queuing