IIS接收请求到进入CLR

当用户向服务器发送的请求时,以驱动形式运行的HTTP.SYS接收到该请求,将其分发给W3SVC:IIS6中,W3SVC会去解析出UR,并根据从Metabase获取的URL与Web之间的映射关系得到目标应用,进而得到目标应用运行的应用程序池或工作进程;IIS7中,W3SVC接收到的HTTP请求最终都会被传递到WAS,如针对单个应用程序池的工作进程未创建,WAS会创建工作进程,WAS在进行请求处理过程中通过内置的配置管理模块加载以XML形式存放在applicationHost.config的配置信息。

在工作进程初始化过程中,相应的ISAPI动态链接库被加载,被加载的IsapiRuntime会接管该HTTP请求,首先创建一个IsapiWorkerRequest对象来封装当前的HTTP请求,随后将此对象传递给ASP.NET运行时HttpRuntime。

从此时起,HTTP请求正式进入了APS.NET管道。

HttpRuntime会根据IsapiWorkerRequest对象(或者说是HttpWorkerRequest)创建用于表示当前HTTP请求的上下文对象HttpContext。

随着HttpContext的创建,HttpRuntime会利用HttpApplicationFactory创建新的或从APS.NET维护的HttpApplication对象池中获取现有的HttpApplication对象。HttpApplication负责处理当前的HTTP请求。

在HttpApplication初始化过程中,ASP.NET会根据配置文件加载并初始化注册的HttpModule对象。对于HttpApplication来说,在它处理HTTP请求的不同阶段会触发不同的事件(Event),而HttpModule的意义在于通过注册HttpApplication的相应事件,将所需的操作注入整个HTTP请求的处理流程。

在HttpModule注册事件的过程中创建的HttpHandler负责最终完成对HTTP请求的处理(这里可以说是开始了页面的生命周期),不同的资源类型对应着不同类型的HttpHandler。

这里不重点介绍页面生命周期,说白了页面的生命周期就是在ProcessRequestMain方法里执行一系列的方法事件!,借用一张图:

转载于:https://www.cnblogs.com/Vam8023/p/8452730.html

IIS与ASP.NET对请求的处理相关推荐

  1. ASP Win7旗舰版中的IIS配置asp.net的运行环境

    以前弄过好多次,都没有成功,昨天晚上不知怎么地就成功了,借用我同学的一句话,这叫"灵光一闪",废话不多说了,这个成功是有图有视频有真相地哈! 这篇博文发表都三个月了,我自认为算是很 ...

  2. Win7旗舰版中的IIS配置asp.net的运行环境

    以前弄过好多次,都没有成功,昨天晚上不知怎么地就成功了,借用我同学的一句话,这叫"灵光一闪",废话不多说了,这个成功是有图有视频有真相地哈! 这篇博文发表都三个月了,我自认为算是很 ...

  3. IIS发布ASP.NET应用常见错误及解决办法

    常见错误 配置文件错误 具体错误类型为HTTP 错误 500.19 - Internal Server Error,错误描述为由于权限不足而无法读取配置文件. 该错误的可能原因是: 如同描述所说的,由 ...

  4. IIS与ASP.NET管道

    IIS 5.x与ASP.NET 我们先来看看IIS 5.x是如何处理基于ASP.NET资源(比如.aspx,.asmx等)请求的,整个过程基本上可以通过图1体现. IIS 5.x运行在进程InetIn ...

  5. win10安装IIS时报错windows无法请求的更改,错误代码0x8007057解决办法2017年10月15日

    最近准备学习ASP.net但是发现安装IIS老是提示windows无法请求的更改,我是win10内部版本1607家庭中文版64位,在启用或者关闭windows功能安装IIS就这个安装不上,像TFTP客 ...

  6. 使用win10自带IIS发布ASP.NET网站

    IIS发布ASP.NET网站 在学习Android的时候,由于没有学习使用JSP搭建网站后台,需要使用ASP.NET写一个网站后台程序来响应APP的网络请求.由于ASP.NET和Android中的lo ...

  7. ASP.net 资源请求漏洞利用工具PadBuster

    ASP.net 资源请求漏洞利用工具PadBuster 在ASP.net 网站中,为了便于部署网站项目,开发者往往会将资源(图片.Javascript文件)嵌入到dll文件中.而网页中,会使用WebR ...

  8. Windows IIS注册asp 此操作系统版本不支持此选项 错误解决方法

    Windows IIS注册asp 此操作系统版本不支持此选项 错误解决方法 参考文章: (1)Windows IIS注册asp 此操作系统版本不支持此选项 错误解决方法 (2)https://www. ...

  9. 终于弄明白Framework 3.5为什么在IIS的ASP.NET选项找不到?

    本人现在正在研究VS2008,发现VS2008带的Framework 3.5,于是我去IIS ASP.NET里面看看是不是有那个选项. 发现没有.于是乎就想到这是脚本没有映射.用以前注册Framewo ...

最新文章

  1. CVPR 2020 | CentripetalNet:目标检测新网络,COCO 48 % AP超现所有Anchor-free网络
  2. java门户网站项目代码_基于jsp的企业门户网站-JavaEE实现企业门户网站 - java项目源码...
  3. JAVA——System.in作为控制台输入时结束输入(输入EOF)解决方案
  4. Python中的Numpy(4.矩阵操作(算数运算,矩阵积,广播机制))
  5. Android 测试支持库 1.0 现已发布!
  6. LeetCode题集大全
  7. 一道关于 fork 的笔试题
  8. python中文文本处理_python简单文本处理的方法
  9. 使用ajax的时候必须要加的几行代码
  10. python asyncio tcp转发_asyncio不通过tcp发送整个图像数据
  11. echarts 柱状图如何不顶格_echarts柱状图如何中间对齐而不是底部对齐?
  12. Java可变参数demo
  13. js中事件处理程序的内存优化
  14. VScode环境变量配置
  15. sourceTree无法注册解决
  16. 微信二次分享(标题、摘要、缩略图)
  17. 橙狮Scratch编程
  18. 怎么有python画五角星_Python的画五角星
  19. 怎么把视频压缩到100MB以内
  20. Android 12.0 锁屏页面禁止下拉状态栏

热门文章

  1. 如何二值图转化为灰度图_木工真空吸附雕刻机如何用精雕5.21把精雕图模型转为灰度图...
  2. java list 截取部分数据_Java List.subList()方法:获取列表中指定范围的子列表
  3. html 动画div右侧消失,使用animate.css时,动画一开始不隐藏,如何解决呢?
  4. linux删除目录所有内容,如何从Linux上的目录中删除所有内容
  5. 如何卸载office201032位_Office 2010如何手动卸载?
  6. linux 设备树_嵌入式系统砖家_初识设备树
  7. oracle表空间 unifor,Oracle 表空间的监控
  8. 帧率配置_《骑马与砍杀2》配置探究:CPU显卡怎么搭配达到理想画质和帧数?...
  9. 的app抓包 ssl_抓包旧版App
  10. 2021年人工神经网络第四次作业:基于MATLAB的求解