VS.NET(C#)-5.18_IIS6架构模型:工作进程(Worker Process)简介
IIS6架構模型:工作進程(Worker Process)
1,概述
在IIS6架構模型中,工作進程(Worker Process , W3WP.exe) 又稱為W3Core。
在W3SVC的管理和監控下,W3Core(W3WP.exe)負責對用戶的web應用程序進行管理。它的主要功能是在一個名為W3Core.dll的動態聯接庫中實現的。在IIS5.0隔離模式下,這個DLL可以被加載到Inetinfo.exe進程中;在IIS6默認隔離模式(應用程序隔離模式)下,這個DLL可以被加載到W3WP.exe進程中。
打開IIS6環境下的管理器界面,設置兩個Web站點(站點名稱:DefaultWeb Site,msnotebooks)分別對應到兩個應用程序池(名稱:DefaultAppPool,msnotebooks),如下:
2,Application Pools/Worker Process關系
????ü 在IIS6.0中,每一個用戶web應用程序都會運行在一個應用程序池中。這個應用程序池可以是IIS默認的應用程序池,也可以是用戶自定義的應用程序池。
????ü 在應用程序池中,存在著一個或者多個工作進程。
????ü?每個工作進程只能屬于一個特定的應用程序池,由這些工作進程來負責管理應用程序池中的用戶web應用程序
他們的結構關系如下圖所示:
(圖 )應用程序池
如圖所示,每個應用程序池里面可以有多個工作進程在工作。說明如下:
????如果,我們將應用程序池比喻成為一座公寓,那么在公寓里面的那些住戶就是一個個web應用程序,而公寓的物業的管理人員就是工作進程。如果公寓比較大,住戶比較多,那么就可能需要有多個物業管理人員。也就是說,
?3,W3Core安全性
在IIS5.0或更早的版本中,用戶的web應用程序是允許運行在進程內的。他們使用系統(System)帳戶運行。這個系統帳戶是:IWAM_計算機名。因為是在系統帳戶下運行,所以這些web應用程序有比較高的權限。
在IIS6.0中,默認情況下,w3wp.exe的所有實例都在一個權限有限的“網絡服務”帳戶下運行。如下圖所示:
(圖 )網絡帳戶的配置
默認的“網絡服務”帳戶不能寫入Inetpub文件夾,執行權限也極其有限,所以在一定程度上提高了IIS的安全性。
當然,用戶可以在需要的情況下為W3WP.exe配置新的運行帳戶。這樣做的好處是:一旦一個web應用被攻擊成功,攻擊者只能訪問當時運行的工作進程的帳戶有權訪問的資源,
4,W3Core性能
在IIS5.0中,由WWW服務負責將用戶的http請求轉發給web應用程序處理,并負責將web應用程序處理的結果返回給用戶。
這一處理的流程如下圖所示:
(圖為IIS5.X)用戶請求的處理過程
在這個過程中,數據需要經過多次傳遞和轉化,這些傳遞和轉換主要包括:
????ü? 內核模式到用戶模式的轉化。TCPIP.sys運行在內核模式下,IIS運行在用戶模式下。這個轉化一項系統開銷很大的操作。
????ü? IIS負責對用戶的http請求進行監聽。
????ü? IIS負責用戶http請求的篩選。即,確定由哪個web應用程序來處理用戶的請求。
因此,IIS5.0的這種對用戶的http請求的處理過程對IIS的性能有很大的影響。
在IIS6.0中,除了將WWW服務從Inetinfo.exe進程中獨立了出來,作為一個單獨的組件(W3SVC)來處理外,還將接收用戶http請求的功能從W3SVC中分離了出來。
????接收用戶http請求的功能現在由W3Core來實現。W3SVC僅負責對W3Core進行創建和監控,不再負責對用戶http請求進行處理。因此,在處理用戶的http請求的時候,內核模式下的HTTP.SYS直接監聽用戶的http請求,并將用戶的http請求直接轉發給W3Core。并由W3Core所管理的web應用程序來處理用戶的http請求。這一操作過程如下圖所示:
(圖 IIS6.X)用戶請求的處理過程
總結
以上是生活随笔為你收集整理的VS.NET(C#)-5.18_IIS6架构模型:工作进程(Worker Process)简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 红色警戒2修改器原理百科(三)
- 下一篇: C#串口通信——协议格式