ASP.NET运行原理

 

 

 

 

 

 

 

 

 

  上图中,Application Domain是应用程序域,可以理解为应用程序的运行空间。ASP.NET ISAPI 将请求交给网站程序,网站程序通过调用HttpRuntime类中的静态方法处理请求。在处理过程中,他主要做了如下工作:1、将请求报文中发送过来的数 据进行保存,保存在HttpWorkRequest类的对象的相应属性当中;2、通过调用HttpApplicationFactory中的静态方法创建 HttpApplication对象,可以分析,倘若服务器每次都得为响应一个请求而创建一个HttpApplication对象的话,对服务器的压力将 会非常巨大。所以在ASP.NET中会有一个叫做HttpApplication pool的东西,当有请求发送过来时,HttpApplicationFactory类会在HttpApplication pool中搜寻已经清楚所有状态的HttpApplication 的对象来赋予数据,指导这次请求的程序运行。;3、创建HttpContext对象,此对象代表了页面的上下文,内部包含了处理请求的所有数据。值得一提 的是,在ASP.NET的一般处理程序的ProcessReques方法当中需要传入类型为HttpContext的对象作为参数,因此 HttpContext的创建应该在靠前。在HttpConcontext中封装有HttpResponse与HtttpRequest两个类的对象,其 中分别对应两个类的Form、QuerySring属性和Write属性用于获取请求中的数据和发送数据给客户端。Form属性用于获取Form表单中的 数据,QueryString用于获取Url当中的数据。

      HttpApplication类的对象主要用于控制整个程序的执行,类中的ProcessRequest方法非常关键,在页面代码运行之 前,ProcessRequest方法会相继按顺序执行总共19个委托事件(也就是常说的管道),在其中第八个事件会创建被请求的页面类对象,在第十一至 第十二的事件期间会调用被请求页面类的ProcessRequest方法。 

 

posted @ 2016-03-05 22:47  proxyZ  阅读(328)  评论(0编辑  收藏  举报