Asp.net底层就是用户通过输入网址,然后请求IIs服务器的流程,在这个过程中有一个重要的部件就是ISAPI,这是一个底层的win32API,在扩展方面比较困难,多用于接口之间的桥接,.net和IIS通过IISAPI进行交互的,IIS中后缀名.aspx,通过应用程序扩展映射到.net的ISAPI扩展的dll,这个dll就是aspnet_isapi.dll,访问都是通过这个dll中相应的映射完成的。

1.通过asp.net的映射机制使用后缀名从ISAPI中获取到接收的请求,并将请求的路由到相应的handler,aspnet_isapi.dll会开启一个工作进程w3wp.exe(使用程序池进行创建,右侧使用无则创建)

2.ISAPIRuntime.ProcessRequest(ecb),将句柄封装为HttpWorkingRequest

3.HttpRuntime.ProcessRequest(wr)这个操作的作用:1.创建一个HttpContext实例,里面封装了浏览器报文的信息2.创建一个HttpApplication实例,首先查看是否有空余的application,没有则按照global.asax类型创建,这个是用来处理报文数据.3.调用Init()方法,初始化管道事件,同时触发管道执行事件。

HttpContext这个对象在整个请求的生命周期中都是存在的,封装了报文的信息,同时包含了所有的请求过程中的重要对象,包括Ruquest、Responese、Application、Cache、Server ,HttpContext.Current可以去访问这些对象,HttpContext,Items这个集合中可以保存一些数据信息,这些数据的生命周期就是整个的请求过程,BeginRequest-EndRequest,HttpContext是在开始请求的时候被创建,是进程内唯一对象。

HttpApplication是Web程序处理的地方,他被映射到Global.asax类中,这个类继承了HttpApplication,在Global中的每一个事件都是以Application_为前缀的事件实现,这也就避免了自己手动创建这些事件委托。每个asp.net的虚拟目录都是在自己的应用程序域中执行,每个应用程序域可以有多个来自管理池的HttpApplication对象,这就是可以同时执行多个请求而互相不影响的原因。

Web.Config具有全局通知的作用,会重新创建应用程序域,关闭旧的应用程序域名。HttpApplication.Init()->HttpApplication.ResumeSteps,执行所有的处理器,这些处理器被映射到global.asax

Asp.net底层机制的更多相关文章

  1. [翻译]了解ASP.NET底层架构(八)

    原文地址:http://www.cnblogs.com/tmfc/archive/2006/09/04/493304.html [翻译]了解ASP.NET底层架构(完) [翻译]了解ASP.NET底层 ...

  2. (转)Asp.Net 请求处理机制

    原文:http://www.cnblogs.com/cilence/archive/2012/05/28/2520712.html Asp.Net 请求处理机制   前言 我们都知道Web请求响应是基 ...

  3. ASP.NET底层与各个组件的初步认识与理解 (转载)

    ASP.NET底层的初步认识与理解   最近在国外的网站乱走一通,发现一些比较好的文章,收集整理加于自己的理解,作为笔记形式记录下来,让以后自己有个回忆. ASP.NET是一个非常强大的构建Web应用 ...

  4. ASP.Net请求处理机制初步探索之旅 - Part 1 前奏

    开篇:ASP.Net是一项动态网页开发技术,在历史发展的长河中WebForm曾一时成为了ASP.Net的代名词,而ASP.Net MVC的出现让这项技术更加唤发朝气.但是,不管是ASP.Net Web ...

  5. ASP.Net请求处理机制初步探索之旅 - Part 2 核心

    开篇:上一篇我们了解了一个请求从客户端发出到服务端接收并转到ASP.Net处理入口的过程,这篇我们开始探索ASP.Net的核心处理部分,借助强大的反编译工具,我们会看到几个熟悉又陌生的名词(类):Ht ...

  6. ASP.Net请求处理机制初步探索之旅 - Part 3 管道

    开篇:上一篇我们了解了一个ASP.Net页面请求的核心处理入口,它经历了三个重要的入口,分别是:ISAPIRuntime.ProcessRequest().HttpRuntime.ProcessReq ...

  7. ASP.NET运行机制原理

    ASP.NET运行机制原理 一.浏览器和服务器的交互原理 (一).浏览器和服务器交互的简单描述: 1.通俗描述:我们平时通过浏览器来访问网站,其实就相当于你通过浏览器去另一台电脑上访问文件一样,只不过 ...

  8. ASP.NET运行机制原理 ---浏览器与IIS的交互过程 自己学习 网上查了下别人写的总结的很好 就转过来了 和自己写的还好里嘻嘻

    一.浏览器和服务器的交互原理 (一).浏览器和服务器交互的简单描述: 1.通俗描述:我们平时通过浏览器来访问网站,其实就相当于你通过浏览器去访问一台电脑上访问文件一样,只不过浏览器的访问请求是由被访问 ...

  9. WebForm页面生命周期及asp.net运行机制

    1.先上几张原理图着重理解: 现在针对第四副图原理进行解析: 流程: 1.浏览器发送请求 2.服务器软件(IIS)接收,它最终的目的就是为了向客户输出它请求的动态页面生成的html代码. 3.服务器不 ...

随机推荐

  1. ViZDoom安装

    官网:https://github.com/mwydmuch/ViZDoom/blob/master/doc/Building.md 环境:ubuntu16, python2.7, Anaconda2 ...

  2. Android代码的几点小技巧

     1)View的状态保存与恢复dispatchRestoreInstanceStateonRestoreInstanceStateonSaveInstanceState 2)Service的前台服务使 ...

  3. Nodejs入门手记 (01):Hello World的WEB程序

    声明:本文为原创文章,如需转载,请注明来源并保留原文链接Allong,谢谢! “滚滚长江东逝水,浪花淘尽英雄.是非成败转头空.” - <临江仙·杨慎·明> 很熟悉的旋律,鸡汤了一下:高考是 ...

  4. Java 阻塞

    对于用ServerSocket 及 Socket 编写的服务器程序和客户程序, 他们在运行过程中常常会阻塞. 例如, 当一个线程执行 ServerSocket 的accept() 方法时, 假如没有客 ...

  5. 转载:30多条mysql数据库优化方法,千万级数据库记录查询轻松解决

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  6. mysql获取外键, 根据数据库名和表名获取表所对应的所有外键

    SELECT ii.`COLUMN_NAME` FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS ii WHERE ii.`CONSTRAINT_SCHEMA`= ...

  7. rsync文件同步、Inotify-tools参数详解

    inotifywait用于等待文件或文件集上的一个待定事件,可以监控任何文件和目录设置,并且可以递归地监控整个目录树: inotifywatch用于收集被监控的文件系统计数据,包括每个inotify事 ...

  8. javaScript实现归并排序

    归并排序是一个O(nlogn)的算法,其基本思想就是一个分治的策略,先进行划分,然后再进行合并,下面举个例子.有这样一组数据: {5,4,1,22,12,32,45,21} 如果对它进行归并排序的话, ...

  9. 通过notepad++将混乱的xml配置的格式进行美化

    需求描述: 最近在进行hbase配置文件的修改之后,发现xml文件的格式很不美观, 然后,在网上找了些方法,实测,通过notepad++的xml tools插件就可 达到美化效果. 操作过程: 1.以 ...

  10. Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义

    http://blog.csdn.net/slovyz/article/details/47400107