ASP.NET HTTP運行時組成詳解(1)
發表于:2007-06-30來源:作者:點擊數:
標簽:
不管使用哪種底層平臺, 可靠性 和 性能 都是對所有 Web 應用程序的主要要求,盡管從某種意義上講,這兩個要求是相互矛盾的。例如,要構建更可靠、更健壯的應用程序,可能需要將 Web 服務器 與具體的應用程序分離,使應用程序在進程外工作。但是,如果在不同
不管使用哪種底層平臺,
可靠性和
性能都是對所有 Web 應用程序的主要要求,盡管從某種意義上講,這兩個要求是相互矛盾的。例如,要構建更可靠、更健壯的應用程序,可能需要將 Web
服務器與具體的應用程序分離,使應用程序在進程外工作。但是,如果在不同于 Web 服務器進程的內存環境中工作,應用程序將變慢。因此,需要采取合理的措施,以確保進程外代碼盡可能快地運行。
在構建 Microsoft? ASP.net 運行時環境時,依據的設計原則即:充分考慮可靠性和性能。得到的 ASP.NET 進程模型包含了兩個系統元素 - 一個存在于 Web 服務器進程中的進程內連接器,一個外部的輔助進程。另外,ASP.NET 運行時結構的可伸縮能力很強,可以自動使用多處理器硬件中任意選定的處理器。這種模式被稱為“Web Garden”,它可以使多個輔助進程同時運行,而且各個進程均在獨立的處理器中。
高度概括起來,ASP.NET 運行時具有三大屬性:
應用程序和 ASP.NET 輔助進程之間完全分離。提供服務的輔助進程的壽命決不會影響應用程序的壽命。換句話說,當應用程序啟動并處于運行狀態時,輔助進程可以隨時終止。
盡管 ASP.NET 應用程序從不在 Web 服務器內采用進程內的方式運行,但大多數情況下,其總體性能仍接近于進程內應用程序的性能。
為 Web Garden 體系結構提供了內置的和可配置的支持。只要簡單檢查一下配置文件中的設置,輔助進程就可以克隆自己,以利用所有與進程密切相關的 CPU。因此,在大多數情況下,您在具備多處理器的計算機中獲得的可縮放性將呈線性增長的趨勢。(本文后面將詳細介紹此內容。)
本文將介紹 ASP.NET 運行時環境的組成元素,然后一步一步地講述從 URL 請求變為純 HTML 文本的“漫長而曲折”的過程。
除非另有說明,否則以下介紹中均指 ASP.NET 的默認進程模型,即 Microsoft? Internet Information Services (IIS) 5.x 中唯一的模型。
原文轉自:http://www.kjueaiud.com