ASP.NET页面运行机制

当浏览器向服务器发送HTTP请求时,这个HTTP请求会被inetinfo.exe进程截获(www服务),然后检查请求资源的类型,并依据资源映射信息(存储在IIS元库中,一种IIS专用的配置数据库)将请求的资源分配给特定的处理程序模块。若请求的是静态资源(img,text,html等)则由IIS处理(IIS在本地Web Server上访问请求的文件),将请求结果返回给浏览器。若需要在服务器端处理的请求,则会被分配到已注册的扩展模块(aspnet_isapi.dll)中,让这个程序开始处理代码(aspnet_isapi会调用ASPNET_WP.exe处理请求),ASP.NET运行时接收到请求后,会判断站点是否为第一次被访问,如果是第一次访问,则运行初始化工作(如加载Bin目录中的DLL动态链接库,读取Web.Config网站配置文件,初始化HttpApplication实例,编译和加载Global.asax文件等)。ASP.NET运行时还负责创建请求响应线程的HttpContext上下文实例和创建承载响应结果的HttpTextWriter实例。然后,ASP.NET运行时寻找合适的HttpHandler(通常就是具有的ASP.NET页面)处理HTTP请求,并等HttpHandler返回请求处理结果。最后,ASP.NET运行时在完成一些后续工作之后,如保存Session、异常处理,生成标准的HTML代码,然后将这些HTML加入到原有的HTML中,最后把完整的HTML返回给IIS,IIS再把内容发送到客户浏览器。

posted on 2014-02-20 14:27  jeemly  阅读(253)  评论(0编辑  收藏  举报