一:IIS5.0运行在进程InetInfo.exe中,该进程寄宿着一个名为World Wide Publishing Service(W3VC)的window服务。

W3VC的主要功能:包括HTTP请求的监听、工作进程和配置管理

检测到HTTP 请求时:

根据扩展名判断是否静态资源

1、是直接将文本内容以HTTP回复的形式返回

2.动态资源,通过IIS 的脚本映射----找到对应的ISAPI动态链接库(是IIS和其他的动态的Web应用和平台之间的纽带)

ASP.NET中对应的ISAPI文件的名称为:aspnet_isapi.dll

ISAPI支持ISAPI 的扩展(ISAPI Extension和ISAPI筛选)

ISAPI是真正处理HTTP请求的接口  ISAPI在HTTP请求真正处理之前查看、修改、转发和拒绝请求(进行请求的验证)

二:IIS6.0新增的功能:

1.ISAPI动态链接库直接加载到工作进程中

2.引入了应用程序池,由于每一个应用程序池对应一个独立的工作进程,从而运行在不同的应用程序池中的Web应用提供基于进程的隔离级别

工作进程的别名(W3WP.exe)

3.创建了一个名为HTTP.SYS的HTTP监听器。属于TCP 之上的一个网络驱动程序  不在IIS的元数据库中,定义在注册表中。

三:HTTP。SYS带来的好处如下:

1.持续监听:HTTP.SYSw是一个网络驱动程序,始终处于运行状态,对于用户的HTTP请求能够及时作出反应

2.更好的稳定性:运行在操作系统的内核模式下,并不执行任何用户代码,其本身不会受到Web应用、工作进程和IIS进程的影响。

3.内核模式下数据缓存:如果某个资源被频繁请求,HTTP.SYS会把响应的内容进行缓存,响应的内容可以直接响应后续的请求(基于内核模式的缓存,不存在内核模式和用户模式的切换,响应速度得到了相应的提高)

四:IIS6.0和ASP.NET

1.当HTTP.SYS监听到HTTP请求分发给W3SVC----解析出URL地址

2 根据从Metabase获取的URL与Web应用之间的映射关系得到-----目标应用----目标应用运行的应用程序池或工作进程

3. 如果进程不存在则创建新的工作程序进程(相应的ISAPI动态链接库被加载    ISAPI.dll为aspnet_isapi.dll)

4.ASP.NET ISAPI在负责进行CLR加载、应用程序域的创建和Web应用的初始化操作

五:IIS7.0和ASP.NET

1.引入了windows激活服务,将原来的W3SVC承载的部分功能分流给了WAS(对非HTTP协议的支持)

2.IIS7.0中对W3SVC主要三大功能改进:

HTTP请求的接受:接受HTTP.SYS监听到的HTTP请求  (W3SVC)

配置管理:从元数据库(Metabase)中加载配置信息,对相关组件进行配置   (WAS)

进程管理:创建、回收、监控工作进程  (WAS)

工作原理:WAS通过监听器适配接口抽象出不同协议的监听器 (基于网络驱动HTTP.SYS提供HTTP请求监听功能外还提供了TCP监听器、命名管道管理器和MSMQ监听器,以及提供基于TCP、命名管道和MSMQ传输协议的监听支持)

此三种监听器相对的是3种监听适配器,他们提供监听器与WAS中监听器适配器接口之间的适配(W3SVC)更多的为HTTP.SYS提供监听适配器的作用  定义在程序集SMHost.exe

SMHost.exe提供了4个重要的Window Serveice

1.NetTcpPortSharing:为WCF提供了TCP端口共享

2.NetPipeActivator:为WAS提供基于命名管道的激活请求,包括命名管道监听器和对应的监听适配器

3.NetTcpActivator:  为WAS提供基于TCP的激活请求,包括TCP监听器和对应的监听适配器

4.NetMsmqActivator:   为WAS提供了基于Msmq的激活请求,包括MSMQ监听器和对应的监听适配器

从另一方面来讲 ,IIS运行在非托管的环境中,而Asp.Net管道则是托管的,IsApi是连接非托管和托管环境的纽带

IIS7.0实现了Asp.Net和IIS的集成,带来的好处:

1.允许通过本地代码和托管代码两种方式定义IIS Module

2.将ASP.NET的URL重写功能置于身份验证之前

3.采用相同的方式去实现、配置、检测和支持一些服务器特性   Module、Handler映射、定制错误配置

转载于:https://www.cnblogs.com/sunliyuan/p/5929248.html

MVC学习IIS的不同版本(一)相关推荐

  1. Spring MVC 学习总结(九)——Spring MVC实现RESTful与JSON(Spring MVC为前端提供服务)...

    Spring MVC 学习总结(九)--Spring MVC实现RESTful与JSON(Spring MVC为前端提供服务) 目录 一.JSON 1.1.概要 1.2.使用ModelAndView ...

  2. Spring MVC 学习笔记一 HelloWorld

    Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...

  3. Spring MVC 学习总结(一)——MVC概要与环境配置 转载自【张果】博客

    Spring MVC 学习总结(一)--MVC概要与环境配置 目录 一.MVC概要 二.Spring MVC介绍 三.第一个Spring MVC 项目:Hello World 3.1.通过Maven新 ...

  4. Spring MVC 学习总结(五)——校验与文件上传 转自 张果 博客;已经编程校验;正确无误;...

    Spring MVC 学习总结(五)--校验与文件上传 目录 一.Spring MVC验证器Validator 1.1.定义验证器 1.2.执行校验 1.3.在UI中添加错误标签 1.4.测试运行 二 ...

  5. Spring MVC学习指南(11-12章总结)

    11:上传文件 将介绍如何在SpringMVC中使用Commons FileUpload和Servlet 3上传文件. 在填写表单的html中,必须将html的enctype属性值设置为multipa ...

  6. Spring MVC 学习笔记 对locale和theme的支持

    Spring MVC 学习笔记 对locale和theme的支持 Locale Spring MVC缺省使用AcceptHeaderLocaleResolver来根据request header中的 ...

  7. Spring MVC 学习总结(二)——控制器定义与@RequestMapping详解

    Spring MVC 学习总结(二)--控制器定义与@RequestMapping详解 目录 一.控制器定义 1.1.实现接口Controller定义控制器 1.2.使用注解@Controller定义 ...

  8. python学哪个版本-老男孩python学习用的哪个版本?

    对于很多人都知道python是现在非常流行的一门语言,也知道python是很多人进入编程行业中首要的选择.同时不少人都知道python目前有两个版本python2和python3,不少人可能对这两个版 ...

  9. .NET MVC 学习笔记(一)— 新建MVC工程

    一..NET MVC 学习笔记(一)-- 新建MVC工程 接触MVC有段时间了,一直想找机会整理一下,可是限于文笔太差,所以一直迟迟羞于下手,想到最近做过的MVC项目也有一些了,花点时间整理一下方便以 ...

最新文章

  1. Git分支合并:Merge、Rebase的选择
  2. window.onload和$(document).ready(function(){})的区别
  3. [Redux/Mobx] 什么是单一数据源?
  4. 分享免费的2.4G板载PCB天线封装(AD)、WIFI天线、GSM天线、433M天线
  5. php装箱,PHP实现的装箱算法示例
  6. 电脑开机进入setup的四种界面介绍
  7. 如何用算法预测世界杯?
  8. 计算机中毒后开机变慢,电脑中毒后运行慢的解决方法
  9. mysql 存储过程 if !=_mysql 存储过程 if !=
  10. pic32mx是什么cpu_DM320105 | Microchip 入门套件, XLP, PIC处理器系列 (MIPS32内核) MCU, PIC32 | RS Components...
  11. 然后卸载干净matlab,安装与卸载
  12. mysql创建表里主码和外码_外码必须是另一个关系的主码吗?主键主码 外键外码是同一个东西吗?...
  13. idea火箭_火箭的大脑
  14. 方法重载例题 编写程序计算两个同类型的数之和 Java
  15. 点到超平面距离的原理推导
  16. ROS统计在线用户数脚本
  17. rhel配置磁盘分区_CentOS/RedHat系统磁盘分区基本要求及分区方案
  18. Nginx实现XSS、SQL注入防护 —— 筑梦之路
  19. 使用cmd命令关机或重启电脑
  20. 利用ARCGIS实现图片与excel中坐标点的匹配并绘图

热门文章

  1. pycharm的console输入如何换行
  2. 极限学习机和支持向量机_极限学习机I
  3. R统计工具:正态性检验
  4. 国家标准GB7665-87传感器
  5. “ 70后”作家:从尴尬自省到扬眉吐气
  6. CETK测试原理/测试方法/测试结果分析以及常见WinCE Test Kit运行问题的排查
  7. python ssh登陆模块_使用python的Paramiko模块登陆SSH
  8. qregexp限制数字范围_数字系统实现电压电流控制的必经之路数模转换器
  9. cad统计面积长度插件vlx_用了它,画cad施工图再也不加班了!
  10. python函数返回none_Python 函数默认返回None的原因