IIS各个版本中你需要知道的那些事儿
来源:互联网 发布:重庆市软件行业协会 编辑:程序博客网 时间:2024/06/12 03:16
转自:http://www.cnblogs.com/humble/p/3917895.html
一、写在前面
目前市面上所用的IIS版本估计都是>=6.0的.所以我们主要以下面三个版本进行讲解
服务器版本IIS默认版本server20036.0server20087.0server20128.0
二、IIS6的请求过程
由图可知,所有的请求会被服务器中的http.sys组件监听到,它会根据IIS中的 Metabase 查看基于该 Request 的 Application 属于哪个Application Pool, 如果该Application Pool不存在,则创建之。否则直接将 Request 发到对应Application Pool 的 Queue中。
每个 Application Pool 对应着一个Worker Process:w3wp.exe。在IIS Metabase 中维护着 Application Pool 和w3wp的映射。WAS(Web Administrative service)根据这样一个mapping,将存在于某个Application Pool Queue的request 传递到对应的worker process(如果没有,就创建这样一个进程)。在 worker process 初始化的时候,加载ASP.NET ISAPI。
同时,在w3wp.exe的内部,ASP.NET 是以 IIS ISAPI extension 的方式外加到 IIS(其实包括 ASP 以及 PHP,也都以相同的方式配置),ASP.NET ISAPI进而加载CLR。从而为ASP.NET Application创建一个托管的运行环境,在CLR初始化的使用会加载两个重要的dll:AppManagerAppDomainFactory和ISAPIRuntime。通过AppManagerAppDomainFactory的Create方法为Application创建一个Application Domain;通过ISAPIRuntime的ProcessRequest处理Request,进而将流程拖入到ASP.NET Http Runtime Pipeline的范畴
注:ISAPI,意思:互联网服务器应用程序接口(Internet Server Application Program Interface).
三、 IIS7的工作过程
- HTTP.sys监听拦截客户端请求开始处理。
- HTTP.sys通过配置信息联系WAS获取相关信息。
- WAS 向配置存储中心请求配置信息。applicationHost.config。
- WWW 服务接受到配置信息,配置信息指类似应用程序池配置信息,站点配置信息等等。
- WWW 服务使用配置信息去配置 HTTP.sys 处理策略。
- WAS为这个请求对应的应用程序池(Application Pool)开启W3WP Worker Process。
- W3WP Worker Process处理以后,将Response返回给HTTP.sys。
- 客户端接受到Response内容。
注意:我们称3-6为初始化配置的过程,配置完毕之后,以后的请求就直接到第七步.当然IIS被重启了,就重头来过.
三、IIS7程序池托管管道模式
W3WP.exe 进程在IIS7中如何工作, 取决于IIS 7 的应用程序池托管管道模式是什么,IIS7目前有2个模式: 经典模式和集成模式
经典的意思大家都知道,就是一个一直以来所使用的方式(便于大家记忆),IIS7其中经典模式的W3WP.exe工作方式就是IIS6的处理方式.
即: IIS ISAPI extension,也就是 aspnet_isapi.dll
IIS7集成模式是一个伟大的改进,让IIS集成了.NET功能(不在依靠之前IIS版本的aspnet_ISPAI.DLL),也就是说所有的HTTP Request请求都要经过.NET来处理(包括html, php等),也因为 .NET 的诸多功能已经成为 IIS 7 的一部份.性能上也得到了提升.
四、IIS8和IIS7有哪些不一样的地方
1. IIS 8.0 只能运行于>=Windows Server 2012 and Windows 8的平台上;
2. IIS 8.0 Application 的初始化被包括在IIS 8.0中. IIS 7.5 Application 初始化(RC) 被作为一个外带模块;
3. IIS 8.0 管理工具已经为 ASP.net 4.5功能更新 . IIS 7.5中还没有;
4. IIS 8.0 集成了SSL 认证支持. IIS 7.5 还没有;
5. IIS 8.0 CPU 节流已经得到更新且包括额外的节流选项,而 IIS 7.5还没有变化;
6. IIS 8.0 集成了动态IP 地址限制功能
7. IIS 8.0 集成了FTP尝试登陆限制功能.
8. IIS 8.0 在NUMA 上的多核扩展;
五、求关注、求推荐
兄台给点鼓励吧 O(∩_∩)O~,你的鼓励是我继续写好这一系列的理由
少侠既然来了就帮推荐一下吧
- IIS各个版本中你需要知道的那些事儿
- IIS各个版本中你需要知道的那些事儿
- GCC编译时你需要知道的那些事儿
- FPGA你必须知道的那些事儿
- ARM那些你得知道的事儿
- Socket,你需要知道的事儿
- java中应该知道的那些事儿
- iOS开发之WWDC2016开发者需要知道的那些事儿
- 关于代码中写注释,你不得不知道的那些事儿
- 关于Tomcat,你必须知道的那些事儿
- iOS Timer--你不知道的那些事儿
- 学习Linux你必须知道的那些事儿
- 学习Linux你必须知道的那些事儿
- iOS应用安全开发你不知道的那些事儿
- Android视频分享-初学者你必须知道的那些事儿
- 有关UILabel那些你可能不知道的事儿
- 关于 Android N 那些你不知道的事儿
- 做淘宝做微信 你必须要知道的那些事儿
- 以管理员身份运行cmd
- Gradle For Android
- JAVA的反射机制
- Android网络编程之Socket
- 解决gdb 调试 core 文件函数名显示为问号的问题
- IIS各个版本中你需要知道的那些事儿
- Android canvas.save()和canvas.restore()的理解
- 拓扑排序实例
- 基于zookeeper简单实现分布式锁
- 语音增强算法研究系列(一):MMSE-STSA 音频降噪
- MR案例之WordCount
- Vim的分割窗口split命令
- ios oc 类之间相互依赖 关于import和@class的区别
- MyEclipse配置SVN及获取服务器代码