加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

HTTPModules和Global.asax – ASP.NET页面生命周期

发布时间:2020-12-16 04:03:29 所属栏目:asp.Net 来源:网络整理
导读:我已经阅读了有关Asp.Net Page life Cycle http://www.codeproject.com/Articles/73728/ASP-NET-Application-and-Page-Life-Cycle的精美文章. 我的理解是请求通过MODULE(BeginRequest,authentica,author,prehandler …)HANDLER(Proccessrequest)PAGE(Init,vi
我已经阅读了有关Asp.Net Page life Cycle http://www.codeproject.com/Articles/73728/ASP-NET-Application-and-Page-Life-Cycle的精美文章.

我的理解是请求通过MODULE(BeginRequest,authentica,author,prehandler …)HANDLER(Proccessrequest)PAGE(Init,viewstate,load,render,……,unload)MODULE(Posthandler,postrequescache,Endreques) ).

Global.asax(Application_start,Application_begin,….)究竟在上面的流程中出现了什么?对此的清晰度确实会有所帮助

Init函数是第一个调用还是Global.asax函数?

谢谢你宝贵的时间.

解决方法

IIS中的ASP.NET应用程序的结构如下图所示.我知道它可能看起来很吓人,但名字应该听起来很熟悉.希望熟悉的名字使它更容易消化.

我不打算用下面你看到的结构来重复.这张照片做得更好,然后我可以说句子.相反,我会直接了解图像对你的问题的影响.

应用领域
什么是App域?它是应用程序的系统内存的私有分配.域内的所有代码都使用分配的域内存.这意味着静态类型和引用在域中共享.域外的任何代码都无法访问此域的内存.

每个ASP.NET application在其所属的每个应用程序池的App域内运行.无论应用程序池中的线程数如何,这种一对一关系都适用.

Global.asax中
什么是Global.asax?最简单的是它继承自System.Web.HttpApplication的.NET类.HttpApplication为Global.asax提供了通过请求管道引导所有HTTP请求的智能.它将触发所有请求生命周期事件并在处理程序上调用ProcessRequest.

每个ASP.NET application将创建多个HttpApplication(Global.asax)实例.收到请求后,它将被传递给其中一个HttpApplication实例.然后,请求将在相同的HttpApplication实例中保留其生命周期.这意味着每个请求都有一个HttpApplication实例正在处理中.每个HttpApplication实例都可以并且将会在其生命周期内重复使用以处理许多请求.

应用事件
Application_Start等应用程序事件在哪里?这取决于因为其中一些事件引用App域而一些事件引用到HttpApplication.Application_Start和Application_End引用App Domain的开始和结束.其余的Application事件(例如Application_Begin)引用HttpApplication实例的生命周期.

更多信息
有关更多信息,我建议this MSDN文章和this非MSDN文章.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读