标签:style blog code http tar ext
ECB(执行控制块)
ISAPIRuntime通过它来实现对ISAPI的间接访问.
ISAPI对Runtime的调用是异步的.有时会造成得不到对应的ISAPI生成的响应.所以,在调用ProcessRequest方法时,ISAPI将自己的ECB传过去.这样,Runtime不仅能将结果传回,而且能够通过ECB来得到一些信息.
l IIS得到一个请求
l 查询脚本映射扩展,然后把请求映射到aspnet_isapi.dll文件
l 代码进入工作者进程(IIS5里是aspnet_wp.exe;IIS6里是w3wp.exe)
l .NET运行时被加载
l 非托管代码调用IsapiRuntime.ProcessRequest()方法
l 每一个请求调用一个IsapiWorkerRequest
l 使用WorkerRequest调用HttpRuntime.ProcessRequest()方法
l 通过传递进来的WorkerRequest创建一个HttpContext对象
l 通过把上下文对象作为参数传递给HttpApplication.GetApplicationInstance(),然后调用该方法,从应用程序池中获取一个HttpApplication实例。
l 调用HttpApplication.Init(),启动管道事件序列,钩住模块和处理器
l 调用HttpApplicaton.ProcessRequest,开始处理请求
l 触发管道事件
l 调用HTTP处理器和ProcessRequest方法
l 把返回的数据输出到管道,触发处理请求后的事件.
ASP.NET在IIS 5/6上的运行模型(ISAPI),布布扣,bubuko.com
标签:style blog code http tar ext
原文地址:http://www.cnblogs.com/robyn/p/3784408.html