WEB程序的执行过程!

        WEB程序的执行过程一直是我迷惑的问题,虽然查了许多资料,但是理解依旧不明朗,一连拖了几天,今天才用调试的方法跟踪了一下WEB的执行过程,写出来是为给自己留个笔记,同时也希望大家能指正其中错误之处!毕竟一人理解有限!

       调试环境:WIN2K ,VS.NET2003,ASP.NET+C#登录程序:Logon.aspx,Default.aspx;

       调试说明:Default.aspx为保护页,未登录不允许访问,将其设为起始页,若未登录则转跳到Logon.aspx;

        调试步骤:

  1. 首先在Global.asax文件中将其中所有过程设置断点按F5运行,或使用VS.NET中调试>逐过程;
  2. 程序中过程执行情况:    Global.asax.cs文件中过程执行顺序:Application_Start -〉Application_BeginRequest -〉Application_AuthenticateRequest -〉Application_EndRequest -〉Application_BeginRequest -〉Application_AuthenticateRequest -〉Session_Start -〉Application_EndRequest -〉未见执行Default.aspx页面代码(说明:除了Session_Start 过程中有代码外,其余过程均未添加任何代码。)页面转跳到Logon.aspx                                                            输入用户名调试:Application_BeginRequest -〉Application_AuthenticateRequest -〉执行Logon.aspx页面代码(登录验证代码)-〉Application_EndRequest -〉Application_BeginRequest -〉Application_AuthenticateRequest -〉验证成功进入Default.aspx(执行Page_Load中代码)-〉Application_EndRequest
  3. 本来以为调试到此结束,于是点页面中的注销,程序在Application_BeginRequest处断开(汗!经验不够也就罢了,理解能力也这么差劲!)接着按F5调试:Application_BeginRequest -〉Application_AuthenticateRequest -〉执行Default.aspx页面导入代码 -〉Application_EndRequest -〉Application_BeginRequest -〉Application_AuthenticateRequest -〉Application_EndRequest -〉转跳到Logon.aspx
  4. 至此程序调试告一段落,下面请看上述调试结果分析(纯属个人分析,如未有错误之处,那是运气使然,还望大家指正错误的地方)                                                                                                                         本调试相当于程序第一次运行情况下:请看Global.asax运行顺序                                                           首先程序启动触发Application_Star过程,然后触发 Application_BeginRequest 过程(个人认为是浏览器发送请求,是程序会话,不知对否),触发Application_AuthenticateRequest 验证过程,触发Application_EndRequest 过程;不知道大家注意没有,上述过程被触发了两次,两次唯一不同的地方是第二次有Session_Start 过程;现在我说一下自己的观点,第一次导致过程触发的原因是浏览器请求,第二次是HTTP请求(也就是页面请求),下面再把程序弄成初次运行的情况下(去掉Session_Start 中代码)来验证我的观点:执行过程:Application_Start -〉Application_BeginRequest -〉Application_AuthenticateRequest -〉Application_EndRequest -〉Application_BeginRequest -〉Application_AuthenticateRequest -〉Session_Start -〉Application_EndRequest -〉未见执行Default.aspx页面代码页面转跳到Logon.aspx       天呀,难道我的分析不正确?   哪位有经验的高手给个答案啊!    个人认为,因为第二次触发中有Session_Start 所以应该是HTTP会话,而第一次,因为首先要打开浏览器,也就是程序会话.
  5. 另外有个问题,就是在关闭浏览器退出程序的时候并不出发Application_End过程!查了一下资料,资料里说:Application_End在应用程序终止时被触发一次,这我搞不懂了,在什么情况下应用程序算是被终止? 难道这个由服务器决定?用户关闭浏览器不算终止程序么?说这样的话或许是我对B/S结构了解不深吧!

      好了,调试就到这了!我也写不出来什么了!错误的地方,错误的理解还希望大家指正出来!

           

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值