一区二区三区在线视频播放_一区在线播放视频_欧美.com_亚洲精品无人区_久久亚洲精品视频_国产精品久久久久久久免费软件_久久av一区二区三区_欧美国产日韩精品免费观看_亚洲一区自拍_91久久国产精品91久久性色_亚洲一区二区三区在线播放_久久久久久久一区_国产精品一区二区久久久_精品成人国产_亚洲欧洲精品一区二区三区波多野1战4_在线观看亚洲精品

綠色資源網:您身邊最放心的安全下載站! 最新軟件|熱門排行|軟件分類|軟件專題|廠商大全

綠色資源網

技術教程
您的位置:首頁網絡編程.Net編程 → IIS處理Asp.net請求和 Asp.net頁面生命周期

IIS處理Asp.net請求和 Asp.net頁面生命周期

我要評論 2011/04/01 23:25:32 來源:綠色資源網 編輯:downcc.com [ ] 評論:0 點擊:197次

當一個客戶端頁面訪問IIS試圖獲取一些信息的時候,發生了什么事情?一個請求在通過了HTTP管道后又發生了什么?本文主要是描述這兩個過程,即IIS處理asp.net請求和asp.net的頁面生命周期。歡迎大家積極拍磚,共同學習,共同進步。

首先我們要弄清楚兩個非常重要的概念:

1, worker process(w3wp.exe). worker process管理所有的來自客戶端的請求并給出響應。它是IIS下asp.net應用程序的核心。

2, application pool. 它是worker process的容器,IIS5及之前的IIS版本均沒有application pool的概念。每一個application pool對應著一個worker process,在IIS Metabase中維護著Application Pool和worker process的Mapping。這就避免了IIS5中出現的worker process(IIS5中是aspnet_wp.exe,同一時間只能運行一個該進程)崩潰,application全崩潰的局面。

客戶端向IIS發出一個資源請求后發生了如下事情:

1, server接受該請求

IIS6通過內核模式(Kernel mode)中的HTTP.SYS來分發各個Request到application pool。 這并不是隨機的過程,在application pool創建的時候就已經注冊到了HTTP.SYS,所以當請求來到時HTTP.SYS會直接發送到相應的application pool。 接下來在IIS的用戶模式(User mode)中,Web Admin Services (WAS) 做了從HTTP.SYS中得到Request并分發到application pool的工作。application pool直接把request傳遞給worker process。

2, 請求傳遞到worker process后,worker process初始化加載ASP.NET ISAPI(Internet Server Application Program Interface),ASP.NET ISAPI進而加載CLR創建托管環境。

(注:ISAPI只是一個接口,起到一個代理的作用,主要能力就是根據Request URL的后綴來尋找該后綴的處理程序)

ASP.NET ISAPI定義在aspnet_isapi.dll中,它本身運行在一個非托管的環境中。ASP.NET ISAPI開始一個HttpRuntime, HttpRuntime調用ProcessRequest方法來開始處理請求。ProcessRequest根據ISAPI傳進來的iWRType 來創建不同的HttpWorkerRequest,從而屏蔽了不同IIS的差異。接下來ProcessRequest方法創建了HttpContext,我們使用HTTPContext.Current來訪問它。在HttpRuntime使用HttpApplicationFactory創建了HttpApplication對象(IHttpHandler)以后,所有的請求都會在通過httpmodule后找到相應的Httphandler進行處理。在HttpApplicationFactory創建HttpApplication之前,會查找config(web.config和Machine.config)文件中注冊的所有的HttpModule,并根據配置信息加載相應的Assembly,通過Reflection創建對應的HttpModule,并將這些Module加到HttpApplication 的_moduleCollection Filed中。我們對一個Application的請求最終會落到一個HttpApplication對象上。當一個請求到來時,ASP.NET會在Httplication Pool中查找未被使用的HttpApplication對象。

3, 請求通過HTTP管道后,每個請求都發向相關的各自的httphandler,IIS請求處理過程結束。

HttpHandler是HTTP管道的終點,它為每個request生成輸出。System.Web.UI.Page就是這樣一個典型的Httphandler,當我們請求一個aspx頁面,這個HttpHandler就生成html發送回客戶端??碢age類的簽名:

public class Page : TemplateControl, IHttpHandler

{

}

可以看到,Page類就是一個HttpHandler。

綜上整個過程就是:當客戶端向服務器發送資源請求時,請求首先到達IIS的HTTP.SYS。然后HTTP.SYS發送請求道對應的Application Pool。 然后Application Pool發送請求到Worker Process(W3WP.exe)中加載ISAPI Extension,ISAPI創建一個HttpRuntime對象來通過HttpModule和HttpHandler處理請求。 然后頁面生命周期就開始了。

4, 頁面生命周期開始

頁面生命周期的主要階段包括:

頁面初始化(Init): 服務器創建服務器控件的實例

加載(load): 控件實例被加載到它定義的頁面對象中

預輸出:(PreRender) 對控件的更改被更新,準備輸出。

保存(SaveViewState): 控件的狀態信息被保存。

輸出頁面(Render):服務器為控件創建html標記。

處理(Dispose): 主要做的工作就是dispose, 關閉數據庫連接,文件資源的釋放等。

卸載(Unload):銷毀服務器控件的實例

頁面生命周期的主要事件:

PreInit:

1.檢查IsPostBack 屬性

2.動態設置Master Page

3.動態設置Theme

4.設置控件的默認值(UniqueId等)

5.重新創建動態控件(初始化控件),初始化控件的值

Init: 這個事件發生在所有的控件被初始化,所有的皮膚設置被應用以后。它用來讀取或者初始化控件屬性。它能夠用來注冊一些aspx頁面中沒有指出的控件的事件。

InitComplete: Use this event for processing tasks that require all initialization to be complete.

PreLoad: 加載頁面的ViewState和所有的控件,然后處理所有的包含在Request實例中的postback數據。

Load: 這個事件可能是大家最熟悉的了。需要注意的是,Page對象會遞歸的調用子控件的onload事件直到頁面和所有的子控件被加載完成。這個事件主要用來設置控件屬性的值,建立數據庫連接(通常不這么做)。

Control events: 這個就不多說了,主要是處理控件的事件,例如click。這也就讓我們明白了每次我們click一個Button的時候,實際上是要先去執行load事件然后才執行click事件的,一般我們用!IsPostBack來判斷一下從而避免執行不必要的加載邏輯。

LoadComplete: 頁面所有的控件都被加載以后執行,暫時沒有想到用來干什么。。。

PreRender: 在HTML被生成之前這是最后一個事件。每一個頁面中的控件都有PreRender的過程。在這里對將要輸出的HTML結果進行最后一次修改。

SaveStateComplete: 在這個時間發生之前,已經保存了所有控件和頁面的,任何對page或者控件的改動都不會產生左右。暫時沒想到用來干啥。

Render: 它不是一個事件而是一個方法。工作就是把HTML寫回客戶端瀏覽器。

UnLoad: 頁面中的每一個控件都會發生這件事。在控件中,使用這個事件來做清理工作,例如關閉數據庫連接等。對與頁面本身也是做清理工作,例如關閉打開的文件和數據庫連接,或者結束日志或者其它指定的工作。

需要說明的是,每次Request都會創建一個全新的Page類的實例,所以在頁面中的自己定義的字段是不能在兩次request中傳遞值的,需要使用viewstate來存儲。

5, HttpHandler根據頁面生命周期中事件的處理把結果發回IIS,IIS再把結果發回客戶端瀏覽器。

值得注意的是,在這個過程中請求會再次通過HttpModule(注冊一個EndRequest事件)。

至此,整個Request結束。

關鍵詞:IIS,Asp.net

閱讀本文后您有什么感想? 已有 人給出評價!

  • 0 歡迎喜歡
  • 0 白癡
  • 0 拜托
  • 0 哇
  • 0 加油
  • 0 鄙視
一区二区三区在线视频播放_一区在线播放视频_欧美.com_亚洲精品无人区_久久亚洲精品视频_国产精品久久久久久久免费软件_久久av一区二区三区_欧美国产日韩精品免费观看_亚洲一区自拍_91久久国产精品91久久性色_亚洲一区二区三区在线播放_久久久久久久一区_国产精品一区二区久久久_精品成人国产_亚洲欧洲精品一区二区三区波多野1战4_在线观看亚洲精品
亚洲高清自拍| 狠狠久久综合婷婷不卡| 国产女主播一区二区| 国产精品久久久久一区二区三区| 韩国自拍一区| 亚洲一区二区综合| 欧美精品一区二区三区高清aⅴ| 欧美成人一区二免费视频软件| 亚洲午夜国产一区99re久久| 国产精品久久久久久亚洲毛片| 麻豆久久久9性大片| 最新国产精品拍自在线播放| 亚洲免费视频中文字幕| 在线视频一区观看| 国产精品嫩草影院一区二区| 麻豆精品视频在线观看视频| 国产视频一区在线观看| 依依成人综合视频| 午夜在线视频一区二区区别| 亚洲欧美日韩精品综合在线观看| 亚洲国产另类精品专区| 久久综合999| 亚洲欧美综合网| 夜夜嗨av一区二区三区网站四季av| 蜜桃精品一区二区三区| 国产精品扒开腿做爽爽爽软件| 欧美精品在线观看| 亚洲国产精品一区二区www在线| 一区二区三区国产精华| 99精品黄色片免费大全| 亚洲欧美日韩国产另类专区| 日韩一区二区福利| 一区二区不卡在线视频 午夜欧美不卡在| 国内久久婷婷综合| 亚洲欧美三级在线| 亚洲精品一区二区在线观看| 亚洲最新色图| 韩国自拍一区| 国产精品theporn| 国产偷久久久精品专区| 久久久91精品国产一区二区精品| 免费不卡在线观看| 亚洲午夜精品久久| 欧美日韩亚洲一区二区三区在线| 欧美好吊妞视频| 99国产精品自拍| 久久久久中文| 国产精品久久久久久久免费软件| 欧美电影美腿模特1979在线看| 香蕉精品999视频一区二区| 香港久久久电影| 极品少妇一区二区三区| 一区二区三区视频在线看| 国产一区二区在线观看免费| 久久激情综合| 亚洲欧美日韩国产综合精品二区| 日韩午夜电影在线观看| 中日韩美女免费视频网站在线观看| 国产一区在线看| 欧美精品网站| 欧美一区二区成人| 久久精品一区| 久久深夜福利免费观看| 欧美性jizz18性欧美| 国产一区二区福利| 欧美成人一区二区| 久久一区二区三区超碰国产精品| 久久成人18免费观看| 国产精品美女一区二区| 亚洲最新在线视频| 亚洲精品视频在线观看网站| 久久久久久网站| 国产日本欧美在线观看| 日韩午夜av电影| 亚洲一二三区在线| 免费在线看一区| 欧美777四色影视在线| 亚洲免费av网站| 国产日韩一区二区三区| 99re热这里只有精品视频| 欧美日韩欧美一区二区| 亚洲素人一区二区| 国产又爽又黄的激情精品视频| 午夜国产欧美理论在线播放| 久久久久一区二区三区| 国内精品国语自产拍在线观看| 国产一区二区三区不卡在线观看| 亚洲一区二区三区精品动漫| 久久亚洲综合色一区二区三区| 亚洲视频精选| 性亚洲最疯狂xxxx高清| 久久综合久久久久88| 欧美精品18videos性欧美| 国产乱码精品一区二区三区忘忧草| 国产亚洲电影| 亚洲日本中文字幕| 欧美日韩你懂的| 亚洲午夜精品国产| 欧美日韩天天操| 国产乱码精品一区二区三区av| 亚洲精品久久久一区二区三区| 久久久久久夜| 在线观看日韩av先锋影音电影院| 久久综合九九| 国产欧美日韩综合一区在线播放| 亚洲国产欧美一区二区三区丁香婷| 亚洲一区二区三区视频| 欧美日韩一区二区在线视频| 在线免费观看日本一区| 欧美久久久久免费| 欧美日本亚洲韩国国产| 国产精品中文字幕在线观看| 男人的天堂亚洲| 麻豆乱码国产一区二区三区| 欧美中文字幕在线| 欧美另类一区二区三区| 亚洲中午字幕| 久久女同互慰一区二区三区| 国产精品捆绑调教| 影音先锋久久久| 国产精品三级久久久久久电影| 欧美三日本三级少妇三99| 亚洲男同1069视频| 国产精品美女一区二区| 男女激情视频一区| 国产一区日韩二区欧美三区| 国产精品igao视频网网址不卡日韩| 亚洲乱码日产精品bd| 欧美精品999| 亚洲精品久久久久久久久| 欧美系列一区| 欧美一区二区视频97| 亚洲自啪免费| 亚洲精品影视在线观看| 欧美巨乳在线观看| 一色屋精品视频在线观看网站| 欧美人与性动交α欧美精品济南到| 精品成人一区二区| 欧美视频在线免费| av不卡在线看| 美女视频一区免费观看| 亚洲国内在线| 国产无遮挡一区二区三区毛片日本| 欧美国产日韩一区二区| 免费日本视频一区| 亚洲激情社区| 国内一区二区三区在线视频| 欧美日韩视频免费播放| 亚洲男女自偷自拍| 国产精品视频yy9299一区| 久久婷婷久久一区二区三区| 激情欧美丁香| 国产欧美日本在线| 国产精品99久久久久久有的能看| 国产日韩亚洲欧美综合| 美女精品视频一区| 亚洲永久免费av| 亚洲欧美日韩一区二区在线| 国产一区二区高清视频| 国产精品久久午夜夜伦鲁鲁| 日韩一级裸体免费视频| 国产精品一区二区在线观看不卡| 久久综合色天天久久综合图片| 国产一区二区在线观看免费播放|