MVC学习IIS的不同版本(一)
一: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映射、定制错误配置
MVC学习IIS的不同版本(一)的更多相关文章
- 《Spring MVC学习指南》怎么样?答:书名具有很大的欺骗性
2016年6月21日 最近,因为工作需要,我从网上买了一本<Spring MVC学习指南>,ISBN编号: 978-7-115-38639-7,定价:49.00元.此书是[美]Paul D ...
- PHP实例开发(3)PHP中MVC学习之ThinkPHP
PHP中MVC学习之ThinkPHP 1.什么是MVC MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的是将M和V的实现代码分离 MVC是一个设 ...
- Asp.net Mvc模块化开发之“部分版本部分模块更新(上线)”
项目开发从来就不是一个简单的问题.更难的问题是维护其他人开发的项目,并且要修改bug.如果原系统有重大问题还需要重构. 怎么重构系统不是本文探讨的问题,但是重构后如何上线部署和本文关系密切.这个大家可 ...
- mvc和iis工作原理
学习IIS & MVC的运行原理 我一直疑惑于以下问题,从客户端发出一个请求,请求到达服务器端是怎样跟iis衔接起来的,而iis又是怎样读取我发布的代码的,并返回服务器上的文件.这其中是怎样的 ...
- Asp.net MVC 学习系列(一)序
题外话 公司本月开始提供早餐服务,2块天一餐,包括粥,两个包(听说是利口福供应的),一个鸡蛋.良心企业.公司原本有一个内部订餐系统,用Delphi开发的,开发的人早就走光了,也没有留下什么文档,现在项 ...
- ASP.NET MVC学习系列(二)-WebAPI请求
继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现 ...
- ASP.NET MVC学习系列(二)-WebAPI请求(转)
转自:http://www.cnblogs.com/babycool/p/3922738.html 继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的g ...
- MVC学习 (一)
在学习MVC之前对asp.net MVC已经有了一些了解,但是还是有很多的疑问,接下来我慢慢来看书学习并带着问题写博客以作记录. 1.MVC是什么? 2.Asp.net MVC和传统的Asp.net ...
- Spring MVC 学习笔记一 HelloWorld
Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...
随机推荐
- JavaScript中给对象添加函数的方式
1. function 类名(){ this.属性: } var 对象名=new 类名(): function 函数名(){ //执行代码 } 对象名.属性名=函数名: 对象名.属性名(): func ...
- 简单springMVC环境搭建
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="htt ...
- Java文件编码格式转换
转自博文<Java文件编码格式转换>: 默认被转换的格式为GBK,转换成的格式为UTF-8 import info.monitorenter.cpdetector.CharsetPrint ...
- struts2视频学习笔记 22-23(基于XML配置方式实现对action的所有方法及部分方法进行校验)
课时22 基于XML配置方式实现对action的所有方法进行校验 使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport,并且提供校验文件,校验文件和action类 ...
- Jquery操作select小结
每次操作select都要查资料,干脆总结一下. 为select设置placeholder <select class="form-control selOP" placeho ...
- 利用VBoxManage对虚拟机格式vdi、vmdk、vhd进行互转
虚拟机顾名思义就是虚拟出来的机器(virtual machine),虚拟化技术也是时下IT界最热门的技术,因其能更加有效利用硬件资源,整合IT应用,降低TCO,节能环保等,说白了就是一台硬件上够强 ...
- Java 面向对象编程——第一章 初识Java
第一章 初识Java 1. 什么是Java? Java是一种简单的.面向对象的.分布式的.解释的.安全的.可移植的.性能优异的多线程语言.它以其强安全性.平台无关性.硬件结构无关性.语言简 ...
- 滑雪(dp好题)
题目描述:贝西去科罗拉多州去滑雪,不过还她不太会玩,只是个能力为 1 的渣渣.贝西从 0 时刻进入滑雪场,一到 T 时刻就必须离开.滑雪场里有 N 条斜坡,第 i 条斜坡滑行一次需要 Di 分钟,要求 ...
- NOIP2009解题报告
09年的题总体来说 没有难题,但是每道题除了第一题都要认真的慢慢写才能AC, 第一题: R国和S国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动. 历经艰险后,潜伏于S国的R国间谍小C终于摸清 ...
- 在linux终端下打开pdf文件
已经使用linux有很长的时间了,感觉linux的终端使用起来非常的方便.但是怎么在linux下用命令的方式打开pdf文件呢.我查了一下,打开pdf的命令是: evince [filename] 例如 ...