声明:本文只是自己的总结和积累。IIS7.x

目录

  • IIS流程及组成部分
  • ASP.NET流程及组成部分
  • IIS与ASP.NET  MVC

一、IIS流程及组成部分 

  

 1、Http.SYS:负责监听HTTP请求(它不属于IIS范畴,但是和IIS联系紧密)

  Http.SYS和IIS是相互独立的,但是之间又是密不可分的。Http.SYS是一个运行在内核模式下的一个网络驱动,它归属于TCP/IP网络子系统的一部分,且是运行在TCP/IP之上。它负责着来自网络HTTP请求的监听和过滤。静态地址请求会直接返回到客户端,动态请求会进入下个流程。

  高效:它作为网络驱动持续运行,持续监听过滤请求,对请求做出快速的响应。对于请求频繁的资源,会将返回内容缓存在内核模式下,后续的请求会从缓存中返回内容,这样就避免了用户模式和内核模式的频繁切换。

   稳定:它独立于IIS运行在内核模式下的网络驱动程序,不需要执行用户程序,也不会受到Web进程和IIS进程的影响。

 2、SvcHost.exe :接收Http请求、配置管理、工作进程管理

  W3SVC(3W公共服务—World Wide Web Publishing Service): 接收Http请求

  WAS(Windows进程激活服务—Windows Process Activation Service):配置管理、工作进程管理

其中,WAS就可以接收处理HTTP请求和非HTTP请求。WAS包含一组非HTTP请求监听器适配接口,可以接收监听器监听的非HTTP请求。其实W3SVC充当了HTTP请求监听器适配器。

  WAS通过请求后缀名与Web应用映射关系,创建工作者进程(或者将请求分发给对应建好的工作者进程),在工作者进程中加载ISAPI(互联网服务器应用程序接口—Internet Server Application Programe Interface)

  ISAPI应用程序实质是一个接口,一个IIS与.NET的桥梁入口,ISAPI维护着很多的桥梁(.dll),例如加载ASP.NET应用的Aspnet_ispai.dll。

  

   在穿过桥梁Aspnet_ispai.dll之后,随之进入ASP.NET的地界了,随后的CLR的加载,AppDomain创建、Web Application的初始化等等。

二、ASP.NET流程及组成部分

  进入到ASP.NET应用,加载CLR,创建AppDomain, HttpApplication的初始化。接下来穿过一串Module,这些Module里可能实现了当请求进入程序之前的时候出发一些操作或者当请求完成时出发的一些操作,期间会经过Handler,来真正相应我们所写的后台代码。请求—>Module(请求进入前触发的操作)—> Handler(我们的aspx页面的后台代码继承自Page,Page继承IHttpHandler)—>Module(请求结束后触发的操作)

三、IIS与ASP.NET  MVC

  

  客户端请求 —> 监听器监听 —> HTTP请求接收(W3SVC)或者 WAS接收到非HTTP请求 —> 对应映射关系并创建工作者进程—> 加载ISAPI—>        

  加载相应的 XXX_ispai.dll —>进入ASP.NET应用—> 加载CLR —> 初始化我们的应用程序  —>一系列 Module操作—>对应Handler的加载执行

   ASP.NET中的Module和Handler拥有很高的扩展性。MVC的就是扩展了Module和Handler。在请求进入前,触发Moudle,对请求进行拦截,分析其controller和action,以及其它相关的上下文信息,然后调用扩展了IHttPHandler接口的MvcHandler,进而进入到我们所对应的具体后台代码。

  

  

转载于:https://www.cnblogs.com/sunchong/p/4102815.html

MVC — 初步理解IIS工作流程相关推荐

  1. 深入理解IIS工作原理

    本文是转载. 上一篇 / 下一篇  2009-08-26 09:41:46 / 个人分类:Python学习 查看( 267 ) / 评论( 0 ) / 评分( 0 / 0 ) 基本概念: 1. 站点程 ...

  2. 简单的Spring MVC入门程序,对于Spring mvc工作流程的理解,servlet标签和servlet-mapping 理解,视图解析器

    javaweb SpringMvc的组成:jsp,JavaBean,servlet 可以使用Spring所提供的功能 提供了前端控制器DispatcherServlet,不需要细化Servlet 执行 ...

  3. java mvc模式工作流程_SpringMVC的简介和工作流程

    一.简介 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.Spri ...

  4. 深入理解IIS的多线程工作机制

    首先让我们来看看IIS里面的这2个数字:最大并发连接数,队列长度.先说这2个数字在哪里看. 最大并发连接数:在IIS中选中一个网站,右键网站名称,在右键菜单中找到并点击[管理网站]->[高级设置 ...

  5. 原来大数据工作流程可以这样理解------生米煮成熟饭!

    碎碎念 最近一直在思考作为测试工程师,如何以大数据为方向,提升自己的知识储备,适应接下来的市场需求,于是看了很多大数据相关的前辈们的文章,加上自己的理解,竟然觉着大数据工作处理流程,就好像我们在煮饭! ...

  6. 一个demo让你彻底理解线程池工作流程

    网上关于线程池的八股文太多了我不多说,说了你也记不住,记住了也理解不了,理解了也不会用- 想了很久,终于想出一个demo,加上十个场景,让你能逐步理解线程池真正的工作流程 相信我,认真看完这篇文章,你 ...

  7. 简述springmvc过程_spring mvc的工作流程是什么?

    展开全部 SpringMVC工作流程描述 向服务器发送HTTP请求,请求被前端控制器 DispatcherServlet 捕获. DispatcherServlet 根据 -servlet.xml 中 ...

  8. OpenGL EGL GPU工作流程理解(十四)

    基本概念 1.OpenGL ES :OpenGL是一套绘图函数的标准,OpenGL|ES是OpenGL中针对嵌入式系统的一套函数子集. 2.EGL:通俗上讲,OpenGL是一个操作GPU的API,它通 ...

  9. 简述C#中IO的应用 RabbitMQ安装笔记 一次线上问题引发的对于C#中相等判断的思考 ef和mysql使用(一) ASP.NET/MVC/Core的HTTP请求流程...

    简述C#中IO的应用 在.NET Framework 中. System.IO 命名空间主要包含基于文件(和基于内存)的输入输出(I/O)服务的相关基础类库.和其他命名空间一样. System.IO ...

最新文章

  1. 比特币Cash Hard Fork辩论在压力测试后重新召开
  2. Linux中java项目环境部署,简单记录一下
  3. 设计模式学习笔记(总结篇:模式分类)
  4. 贪心/动态规划 - 摆动序列
  5. centos7 修改默认yum源为国内的阿里云
  6. python非贪婪匹配_Python中关于正则表达式非贪婪以及多行匹配功能详解
  7. 《R语言编程艺术》——1.4 R语言中一些重要的数据结构
  8. Hibernate5-1对多(1:n)-级联删除-cascade=delete-orphanl
  9. 算法的基本控制结构之循环结构
  10. java adf是什么_在ArcIMS9.2中使用JAVA ADF实现图层要素的查询
  11. 一加7pro运动计步功能_时隔多年,一加再次入局中端智能手机 这次能否成功?...
  12. zstuoj 4245 KI的斐波那契
  13. 上位机和下位机计算机联锁,上位机下位机各是什么意思?上位机下位机介绍
  14. 转载---英语 是否 双写 规则
  15. Fixing DSDT
  16. 128、易燃气体的概念
  17. UOS V20 SP1 升级到Update1 后WPS无法打开
  18. [深度学习]Part1 Python学习进阶Ch24图像处理OpenCV(24.1~24.13)——【DeepBlue学习笔记】
  19. 基于 HTML5 + WebGL 的宇宙 3D 展示系统
  20. Win32 SDK 访问数据库

热门文章

  1. 微软CRM 2011 Beta 新功能之二:不同组织不同基本语言
  2. mysql中max_allowed_packet参数的配置方法(避免大数据写入或者更新失败)
  3. 【转载记录】Accessing Device Drivers from C#
  4. 使用maven引入Apache poi jar包
  5. 【C++ 学习笔记】 MFC CEdit
  6. 计算机桌面设计总结及体会,计算机基础学习心得
  7. matlab可以使用词云分析吗,利用豆瓣短评数据生成词云
  8. 360健康助手文件存储位置 获取图片
  9. Ant Design Pro 开启默认进入登录页
  10. Red5 webapp配置