1.IIS5.0的進程模型
如果把ASP.NET應用程序部署到windows server 2003 之前的版本(例如windows 2000、windows xp),IIS5.0進程模型是唯一的選擇。根據該進程模型,aspnet_isapi.dll不能處理.aspx文件,而是充當調度程序。它搜集所有有關激活URL和基礎資源的信息,然后把請求傳遞給另一個不同的進程:名為aspnet_wp.exe的asp.net工作進程。ISAPI擴展和工作進程之間的通信通過命名管道進行。
IIS5.0進程模型的整個原理圖
工作進程的一個副本始終在運行,并托管所有活動的Web應用程序。唯一例外的情況是一個帶多個CPU的Web服務器。在這種情況下,可以配置ASP.NET運行庫,一邊多個工作進程運行,使每個CPU分配到一個工作進程。例如,如果有多個CPU,并且需要運行線程安全的代碼,但又不足以假設它在一個多處理器環(huán)境下也能順利運行,則需要這么做。多個進程在一臺單服務器中的多個CPU上運行的模型成為Web garden,并受machine.config文件中的<processModel>節(jié)上的屬性控制。
當一個工作進程被所有的CPU使用,并控制所有的Web應用程序時,并不一定表示沒有實現(xiàn)進程隔離。事實上,每個Web應用程序用自己虛擬目錄進行標識,并且屬于一個不同的應用程序域(AppDomain)。每當客戶第一次處理一個虛擬目錄時,在ASP.NET工作進程內創(chuàng)建一個新的AppDomain。創(chuàng)建新的AppDomain后,ASP.NET運行庫加載所有必須的程序集,并把控制傳遞給托管的HTTP管道以實際服務于請求。
如果客戶從一個已經運行的Web應用程序請求一個頁,則ASP.NET運行庫只是把該請求轉發(fā)到與該虛擬目錄關聯(lián)的先有的AppDomain。如果該AppDomain中沒有加載處理該頁所需的程序集,則動態(tài)地創(chuàng)建它;否則,如果在第一次調用時已經創(chuàng)建,則只是使用它。
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
