IIS6、IIS7和IIS8各版本的差别

一、写在前面

   目前市面上所用的IIS版本估计都是>=6.0的。所以我们主要以下面三个版本进行讲解:

 服务器版本 IIS默认版本
server2003 6.0
server2008 7.0
server2012 8.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的工作过程

      1.HTTP.sys监听拦截客户端请求开始处理;

      2.HTTP.sys通过配置信息联系WAS获取相关信息;

      3.WAS向配置存储中心请求配置信息。applicationHost.config;

      4.WWW服务使用配置信息去配置HTTP.sys处理策略;

      5.WWW服务使用配置信息去配置HTTP.sys处理策略;

      6.WAS为这个请求对应的应用程序池(Application Pool)开启W3WP Worker Process;

         W3WP Worker Process处理以后,将Response返回给HTTP.sys;

         客户端接收到Response内容。

    注意:我们称3-6为初始化配置的过程,配置完毕之后,以后的请求就直接到第七步。当然IIS被重启了,就重头来过。

        

四、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上的多核扩展;

 

参考链接:https://www.cnblogs.com/jimcsharp/p/5582426.html

更官方的区别,参考链接:https://blogs.msdn.microsoft.com/kaushal/2013/05/26/difference-in-iis-6-iis-7-x-and-iis-8-with-regards-to-ssl/

展开阅读全文

没有更多推荐了,返回首页