很简单的权限继承体系,
public class BasePage : System.Web.UI.Page
{
protected override void OnPreInit(EventArgs e)
{
//没有登陆
if (Session["UserInfo"] == null)
{
Response.Redirect("Login.aspx", true); -- 当去掉这一句时B页面就不会出现阻塞状态.
}
base.OnPreInit(e);
}
上面的代码我就不重复什么意思了, 我现在将奇怪现像描述一次,
当在Login.aspx 里面,给Session赋值并登陆进来以后, 在Default.aspx页面中, 只有两个超链接,
<a href="A.aspx" target="_blank">A</a>
<a href="B.aspx" target="_blank">B</a>
当打开A页面并点击查询, A页面的查询大约需要10分钟左右(大家不要问为什么要查这么久),
在查询的同时再打开B页面时, B页面一直打不开, 一直是阻塞状态, 但B页面是一个空页面, 没有操作,
但是将BasePage类的 " Response.Redirect("Login.aspx", true); " 这一句给注解
的时候, B页面就不会有阻塞状态,
大家帮帮忙解答一下.
Login页是不是也继承BasePage了?
正如,Gray Zhang所说,有可能: Login页也继承BasePage,出现死循环。
你可以试试改下参数:
Response.Redirect("Login.aspx", false);
http://www.cnblogs.com/downmoon/archive/2008/02/01/1060816.html
关于Server.Execute方法,请参考微软网站
要看AB页面的逻辑。
为什么不打断点?
先运行Login.aspx并登陆,然后跳转到 A.aspx并查询。
当A页面查询开始后,在 PreInit页面打个断点,然后运行B页面。
看会出现什么情况?