初步谈 asp.net运行原理

1 当用户通过浏览器向服务器发送请求时, 服务器端的IIS接收到请求,一看是.aspx页面,发现这个请求自己不用处理,然后通过映射表把请求交给了一个叫ISAPI.dll的扩展程序,这个扩展程序将请求有交给了framework 。

2在framework中调用了ISAPIRuntime的processRequest方法处理请求,在此方法中,又调用了isapiworkerrequest的CreateWorkeRequest方法,创建了一个WorkerReques对象。并将请求的报文封装到了WorkerRequest这个对象中。

3然后调用了HttpRuntime的processRequest方法,创建了HttpContext(上下文)对象。在这个对象中有两个重要的对象,httpRequest和httpResponse。

其中httpRequest对象中,包含了来自workrequest的请求报文数据。

Httpresponse主要是创建httpwrite,把响应报文写到这个缓存区中。

4 当创建完httpcontext后立马通过HttpApplicationFactory创建HttpApplication对象。调用它的processRequest开始处理请求页面。

5 在处理请求页面中,开始执行19个委托对象(请求管道)。其中第8个事件创建被请求的页面类对象。并转成了IHttPHandler接口对象。

第11-12个事件调用的页面对象的processRequest方法、开始处理请求报文,并通过response.write()先写到这个缓存区中,最后通过workrequeset把响应报文发到浏览器。

 

 

 

posted @ 2012-12-12 21:05  jamesyuan  阅读(889)  评论(3)    收藏  举报