偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

IIS ASP.NET的進程模式淺析

開發(fā) 后端
IIS ASP.NET的進程模式是什么呢?他們有什么區(qū)別呢?本文將會給你介紹IIS的處理模式以及ASP.NET的處理模式。

IIS ASP.NET的進程模式有哪些呢?他們各自有什么特點呢?來開始我們的講解。

IIS ASP.NET的進程模式之ASP.NET處理模型

到目前為止,我們已經明白當請求一個ASP.NET文件的請求傳到IIS后,他被轉遞到aspnet_isapi.dll,他是ASP.NET相關處理的主要入口點。實際上,這個擴展明顯依賴于系統(tǒng)上IIS的版本,因此處理模型是通過asp.net運行時通過有序的操作執(zhí)行來處理請求并生成回送,也許有那么一點改變。

在IIS5.X,所有asp.net相關請求通過ISAPI擴展被分配到外部工作進程叫做aspnet_wp.exe.ISAPI擴展,在IIS進程(inetinfo.exe)中運行,再傳遞控制權連同所有關于當前傳入請求的信息到aspnet_wp.exe。2個進程間的通信通過命名管道(眾所周知IPC[內部進程通信]機制建立。ASP.NET工作進程執(zhí)行ISAPI擴展的大部分任務。注意一下每個WEB應用程序的實質,以及與IIS下不同虛擬目錄的通訊,他們在asp.net工作進程同一個進程的上下文中被執(zhí)行。為了實現讀取各自執(zhí)行中上下文ASP.net引入了應用程序域的概念,縮寫AppDomains.他們可以被認為是一個輕量級的進程。更多的將在后面介紹。

如果運行在IIS6上,aspnet_wp.exe進程沒有被使用,選擇一個更優(yōu)的進程叫做w3wp.exe.同時,inetinfo.exe也不再用來傳遞HTTP請求到ISAPI擴展,盡管這樣他還是保持為其他協(xié)議的請求提供服務。雖然IIS6能夠運行在兼容模式下并且模擬之前的行為,但是相對于先前的IIS5處理模型有了很多的變化。相對早期***改變,當處理模型運行在IIS5上,傳入進來的請求以lower-kernel-level形式然后傳遞到正確的ISAPI擴展,從而避免在內部信息處理方面花費過多的操作。在下面的段落中,我們將進行更深入的研究。

IIS ASP.NET的進程模式之IIS5.0 處理模型

在windows2000以及XP系統(tǒng)上這是默認的處理模型。如上所說他有IIS inetinfo.exe進程默認在TCP端口80監(jiān)聽傳入的HTTP請求并且把他們推送進隊列等待處理。如果請求類型是asp.net,處理將委托給asp.net isapi擴展 aspnet_isapi.dll.這樣輪流通過命名管道與ASP.NET工作進程通信,最終工作進程處理并傳遞請求到asp.net HTTP運行時環(huán)境。圖表2將具體描敘這個過程。

圖表2:IIS5.0處理模型

IIS5.0處理模型 

圖表2顯示一個我們尚未提到過的元素—ASP.NET HTTP運行時環(huán)境。目前他并不是我們這編文章的主題,他將在接下來的文章中被解析。HTTP運行時可以被看作一個黑色盒子,所有ASP.NET指定處理在這里發(fā)生,所有的受管制代碼運行場所,從HTTP運行時一直到httphandler最終處理請求并生成回送都在這里被處理。這里還涉及到ASP.NET管道或HTTP運行時管道。

就這個模型有一個有趣的地方就是所有請求,一旦被ISAPI擴展處理,就被傳遞到asp.net工作進程。每次活動時間有且僅有一個進行實例,一個例外,后面討論。因此所運行在IIS上的asp.net web應用程序實際上也運行在工作進程上。盡管如此,這并不意味著所有應用運行在同一個上下文上并共享他們所有的數據。值得一提,asp.net引入APPDomain概念,本質上是一種提供獨立和安全邊界的受管制輕量級進程。每個IIS虛擬目錄在一個APPDomain里執(zhí)行,他將自動加載到工作進程只要資源是屬于***次請求的應用程序。一旦appdomain被加載,換句話說,當前請求所有需要的程序集被加載到appdomain–實際上是傳遞到asp.net管道處理。若干appdomains能夠這樣運行在同樣的進程中,當多個請求對于同樣的appdomain能夠在多個線程出來。盡管如此,一個線程并不屬于一個appdomain,他能為多個不同的appdomians處理多個請求,但是同一個給定的時間一個線程屬于一個APPdomain.

處于性能目的,工作線程能夠根據一些標準(通過MACHINCE.CONFIG文件配置)被回收。這些標準包括進程生命周期,請求以及隊列數量,空閑時間,內存分配。一旦達到這些參數中一項臨界值,ISAPI擴展將生成一個新的工作進程實例用來處理請求。實際上,先前的進程實例并沒有被關閉,但是他被終止服務等待的請求。

IIS ASP.NET的進程模式之IIS6.0處理模型

IIS6是WINDOWS2003系統(tǒng)默認的。在IIS5處理模型的上他有幾個改變和改進。其中之一***改變就是應用程序池概念。在IIS5系列應用程序上,即所有的appDomains—運行在asp.net工作進程上。為了在安全以及特性上完成一個出色的界定,IIS6處理模型允許應用程序運行在同一個工作進程的不同拷貝上。每個應用程序池能夠包含多個appdomains(運行在單獨一個工作進程拷貝上).換而言之,這個變化是從單一進程運行所有程序到多個進程運行每一個應用池。這個模型也叫做工作過程隔離模式。

例外一個大變化相對先前的模型在IIS監(jiān)聽所有傳入數據方面。在IIS5里,由IIS進程,inetinfo.exe監(jiān)聽指定的TCP端口。在IIS6中,傳入請求被處理并隊列在核心級別來替換先前通過核心驅動調用http.sys的用戶模式;這種方法有幾個優(yōu)勢相對于先前的模式被叫作 kernel-level 請求隊列。

圖表3 IIS6處理模型

IIS6處理模型 

圖表3主要由請求處理組成。一旦一個請求到達核心級別設備驅動http.sys,然后發(fā)送到相應的應用程序池隊列,每個隊列屬于一個指定的應用程序池。

工作進程負責加載asp.net ISAPI擴展,依次加載 CRL 委派所有工作到HTTP運行時。

W3WP.exe進程與IIS5下面的aspnet_wp.exe不同,他不是asp.net特有的,能夠用來處理任何類型的請求。什么樣的ISAPI模塊被加載類型根據需要的服務資源類型。

IIS ASP.NET的進程模式就向你就介紹到這里,希望對你有所幫助。

【編輯推薦】

  1. ASP.NET實現靜態(tài)頁面方法淺析
  2. ASP.NET連接字符串的遍歷淺析
  3. ASP.NET緩存的種類及特點淺析
  4. ASP.NET頁面跳轉的三大方法詳解
  5. IIS ASP.NET的本質與聯(lián)系淺析
責任編輯:仲衡 來源: 博客堂
相關推薦

2009-07-28 10:59:13

ASP.NET IIS

2009-07-24 13:41:03

IIS ASP.NET

2009-07-21 14:32:51

ASP.NET進程模型

2009-07-27 10:18:12

TypeResolveASP.NET

2009-08-05 15:50:13

ASP.NET優(yōu)點

2009-07-31 12:43:59

ASP.NET MVC

2009-07-27 15:34:11

MembershipASP.NET

2009-07-30 13:45:40

ASP.NET開發(fā)模式MVC模式

2009-08-05 18:36:12

ASP.NET Che

2009-07-24 13:41:15

ASP.NET AJA

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設計

2009-07-22 18:03:00

ASP.NET ASP

2009-07-24 11:15:36

IIS ISAPI eASP.NET

2009-07-28 15:53:43

ASP.NET Web

2009-07-28 16:40:11

ASP.NET異步頁面

2009-08-04 17:00:09

ASP.NET禁用Vi

2009-07-23 14:31:20

ASP.NET MVC

2009-07-20 16:23:01

ASP.NET授權模塊

2009-08-05 14:46:17

ASP.NET url

2009-07-28 13:35:18

點贊
收藏

51CTO技術棧公眾號