IIS各個版本中你需要知道的那些事兒


一、寫在前面

目前市面上所用的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 服務接受到配置信息,配置信息指類似應用程序池配置信息,站點配置信息等等。
  5. WWW 服務使用配置信息去配置 HTTP.sys 處理策略。
  6. WAS為這個請求對應的應用程序池(Application Pool)開啟W3WP Worker Process。
  7. W3WP Worker Process處理以后,將Response返回給HTTP.sys。
  8. 客戶端接受到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~,你的鼓勵是我繼續寫好這一系列的理由

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM