MVC — 初步理解IIS工作流程

本文详细解析了IIS7.x的工作流程及其组成部分,包括Http.SYS的作用、SvcHost.exe的功能,以及W3SVC和WAS的职责。同时深入介绍了ASP.NET的处理流程,包括CLR的加载、AppDomain的创建等关键步骤,并探讨了IIS与ASP.NET MVC的集成方式。

声明:本文只是自己的总结和积累。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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值