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文章.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....