HTTP 请求处理流程
大致过程如下:
1、IIS得到一个请求
2、查询脚本映射扩展,然后把请求映射aspnet_isapi.dll文件
3、代码进入工作者进程(IIS 5 里是aspnet_wp.exe;IIS6 里是w3wp.exe),工作者进程也叫辅助进程;
4、.NET 运行时被加载;
5、非托管代码调用 IsapiRuntime.ProcessRequset()方法;
6、每一个请求调用一个IsapiWorkerRequset;
7、使用WorkerRequset 调用HttpRuntime.ProcessRequset() 方法;
8、通过传递过来的WorkerRequset 创建一个HttpContext对象;
9、通过把上下文对象作为参数传递给HttpApplication.GetApplication(),然后调用该方法,从应用程序池中获取一个HttpApplication实例;
10、调用HttpApplication.Init(),启动管道事件序列,钩住模块处理器;
11、调用HttpApplication.ProcessRequset ,开始处理请求;
12、触发管道事件;
13、调用HTTP处理器喝ProcessRequset 方法;
14、把返回的数据输出到管道,触发处理请求后的事件