Per*_*eru 6 asp.net httphandler httpmodule global-asax
我已经阅读了有关Asp.Net Page生命周期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函数?
谢谢你宝贵的时间.
Mar*_*ker 12
IIS中的ASP.NET应用程序的结构如下图所示.我知道它可能看起来很吓人,但名字应该听起来很熟悉.希望熟悉的名字使它更容易消化.
我不打算用下面你看到的结构来重复.这张照片做得更好,然后我可以说句子.相反,我会直接了解图像对你的问题的影响.

App Domain
什么是App Domain?它是应用程序的系统内存的私有分配.域内的所有代码都使用分配的域内存.这意味着静态类型和引用在域中共享.域外的任何代码都无法访问此域的内存.
每个ASP.NET应用程序都在其所属的每个应用程序池的App域内运行.无论应用程序池中的线程数如何,这种一对一关系都适用.
Global.asax
什么是Global.asax?最简单的是它继承自System.Web.HttpApplication的.NET类.HttpApplication为Global.asax提供了通过请求管道引导所有HTTP请求的智能.它将触发所有请求生命周期事件并在处理程序上调用ProcessRequest.
每个ASP.NET应用程序都将创建HttpApplication(Global.asax)的多个实例.收到请求后,它将被传递给其中一个HttpApplication实例.然后,请求将在相同的HttpApplication实例中保留其生命周期.这意味着每个请求都有一个HttpApplication实例正在处理中.每个HttpApplication实例都可以并且将被重用,以在其生命周期内处理许多请求.
应用
程序事件Application_Start等应用程序事件在哪里?这取决于,因为其中一些事件涉及App域,一些事件涉及HttpApplication.Application_Start和Application_End指的是App Domain的开始和结束.其余的Application事件(例如Application_Begin)引用了HttpApplication实例的生命周期.
更多信息
有关详细信息,我建议使用此 MSDN文章和此非MSDN文章.
| 归档时间: |
|
| 查看次数: |
8561 次 |
| 最近记录: |