我说的这些对你来说够底层了吗

我说的这些对你来说够底层了吗?

 

-我们已经走完了整个请求处理过程了.这过程中有很多底层的信息,我对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中这些处理过程看上去并没有发生太大的变化.

 

posted on 2006-09-04 09:00  tmfc  阅读(2647)  评论(1编辑  收藏  举报