导读:
我说的这些对你来说够底层了吗 ?
唷-我们已经走完了整个请求处理过程了.这过程中有很多底层的信息,我对HTTP模块和HTTP处理器是怎么工作的并没有描述的非常详细.挖掘这些信息相当的费时间,我希望在了解了ASP.NET底层机制后,你能获得和我一样的满足感.
在结束之前让我们快速的回顾一下我在本文中讨论的从IIS到处理器(handler)的过程中,事件发生的顺序
IIS获得请求
检查脚本映射中,此请求是否映射到aspnet_isapi.dll
启动工作进程(IIS5中为aspnet_wp.exe,IIS6中为w3wp.exe)
.NET运行时被载入
IsapiRuntime.ProcessRequest()被非托管代码调用
为每个请求创建一个IsapiWorkerRequest
HttpRuntime.ProcessRequest()被工作进程调用
以IsapiWorkerRequest对象为参数创建HttpContext对象
调用HttpApplication.GetApplicationInstance()来从池中取得一个对象实例
调用HttpApplication.Init()来开始管道事件并挂接模块和处理器
HttpApplicaton.ProcessRequest被调用以开始处理.
管道中的事件被依次触发
处理器被调,ProcessRequest函数被触发
控制返回到管道中,后处理事件被依次触发
有了这个简单的列表,记住这些东西并把他们拼在一起就变得容易多了.我时常看看它来加深记忆.所以现在,回去工作,做一些不那么抽象的事情…
虽然我都是基于ASP.NET1.1来进行讨论的,不过在ASP.NET2.0中这些处理过程看上去并没有发生太大的变化.
本文转自
http://www.cnblogs.com/tmfc/archive/2006/09/02/493323.html
我说的这些对你来说够底层了吗 ?
唷-我们已经走完了整个请求处理过程了.这过程中有很多底层的信息,我对HTTP模块和HTTP处理器是怎么工作的并没有描述的非常详细.挖掘这些信息相当的费时间,我希望在了解了ASP.NET底层机制后,你能获得和我一样的满足感.
在结束之前让我们快速的回顾一下我在本文中讨论的从IIS到处理器(handler)的过程中,事件发生的顺序
IIS获得请求
检查脚本映射中,此请求是否映射到aspnet_isapi.dll
启动工作进程(IIS5中为aspnet_wp.exe,IIS6中为w3wp.exe)
.NET运行时被载入
IsapiRuntime.ProcessRequest()被非托管代码调用
为每个请求创建一个IsapiWorkerRequest
HttpRuntime.ProcessRequest()被工作进程调用
以IsapiWorkerRequest对象为参数创建HttpContext对象
调用HttpApplication.GetApplicationInstance()来从池中取得一个对象实例
调用HttpApplication.Init()来开始管道事件并挂接模块和处理器
HttpApplicaton.ProcessRequest被调用以开始处理.
管道中的事件被依次触发
处理器被调,ProcessRequest函数被触发
控制返回到管道中,后处理事件被依次触发
有了这个简单的列表,记住这些东西并把他们拼在一起就变得容易多了.我时常看看它来加深记忆.所以现在,回去工作,做一些不那么抽象的事情…
虽然我都是基于ASP.NET1.1来进行讨论的,不过在ASP.NET2.0中这些处理过程看上去并没有发生太大的变化.
本文转自
http://www.cnblogs.com/tmfc/archive/2006/09/02/493323.html
本文详细介绍了ASP.NET从IIS接收请求到处理器处理的全过程,包括启动工作进程、加载.NET运行时、创建IsapiWorkerRequest对象及HttpContext对象、触发管道事件等关键步骤。
173

被折叠的 条评论
为什么被折叠?



