微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

HTTPModules和Global.asax – 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,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文章.

原文地址:https://www.jb51.cc/aspnet/247063.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐