溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

.NET Framework運(yùn)行機(jī)制知識(shí)有哪些

發(fā)布時(shí)間:2021-11-25 09:32:30 來(lái)源:億速云 閱讀:139 作者:柒染 欄目:編程語(yǔ)言

本篇文章為大家展示了.NET Framework運(yùn)行機(jī)制知識(shí)有哪些,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

認(rèn)真的學(xué)習(xí)掌握.NET Framework運(yùn)行機(jī)制,有益于我們實(shí)際開(kāi)發(fā)。在這里我們將會(huì)對(duì).NET Framework運(yùn)行機(jī)制進(jìn)行一個(gè)詳細(xì)的介紹,希望對(duì)大家有所幫助,提高大家對(duì).NET Framework的認(rèn)識(shí)。

記得前一段時(shí)間有本不錯(cuò)的書(shū)叫Delphi深度歷險(xiǎn),寫(xiě)得不錯(cuò),我也就暫且借用了,:)

在這里我不打算簡(jiǎn)單介紹ASP.NET的入門知識(shí)了,ASP.NET除了名字和古老的ASP有些相同外,已經(jīng)是完完全全的改變了,雖然你仍能在ASP.NET中發(fā)現(xiàn)你熟悉的 Session,Application等等

但是不要嘗試將他們同遠(yuǎn)古的ASP時(shí)代的Session等等畫(huà)上等號(hào)。

我們來(lái)慢慢的深入到ASP.NET Framework的核心內(nèi)部,看看她是如何實(shí)現(xiàn)的,看看她是如何能承擔(dān)起下一代Web開(kāi)發(fā)技術(shù)平臺(tái)這個(gè)美譽(yù)的。

這篇東東不曾想過(guò)要完成多少章節(jié),也沒(méi)有這個(gè)必要,權(quán)當(dāng)日記的形式存在,或許很短,或許很長(zhǎng),我會(huì)盡我的所能來(lái)將.NET Framework運(yùn)行機(jī)制展現(xiàn)在諸位面前。

如果你對(duì)ASP.NET Framework沒(méi)有任何了解,你同樣可以成為ASP.NET coding高手,如果是這樣,你就不必繼續(xù)看下去了。

Chapter One -- Process a http request.

我們瞧一瞧.NET Framework運(yùn)行機(jī)制和架構(gòu)。

在開(kāi)始之前,我們先跟隨考古學(xué)家參觀一下古老的ASP運(yùn)行機(jī)制:

當(dāng)你請(qǐng)求一個(gè)*.asp文件的時(shí)候,這個(gè)http request首先被inetinfo.exe進(jìn)程所截獲,這個(gè)inetinfo.exe進(jìn)程就是WWW服務(wù)進(jìn)程,然后她會(huì)將這個(gè)請(qǐng)求轉(zhuǎn)交給 asp.dll進(jìn)程,asp.dll進(jìn)程就會(huì)解釋執(zhí)行這個(gè)asp葉面,然后將解釋后的數(shù)據(jù)流返回給客戶端瀏覽器。

轉(zhuǎn)過(guò)頭來(lái)我們看看如今的.NET Framework運(yùn)行機(jī)制是如何處理一個(gè)http request.

當(dāng)你請(qǐng)求一個(gè)*.aspx文件的時(shí)候,同樣的這個(gè)http request會(huì)被inetinfo.exe進(jìn)程截獲,她判斷文件的后綴之后,將這個(gè)請(qǐng)求轉(zhuǎn)交給 ASPNET_ISAPI.dll,ASPNET_ISAPI.dll會(huì)通過(guò)一個(gè)被稱為Http PipeLine的管道,將請(qǐng)求發(fā)送給ASPNET_WP.exe進(jìn)程,當(dāng)這個(gè)http request進(jìn)入ASPNET_WP.exe進(jìn)程之后,會(huì)通過(guò)HttpRuntime來(lái)處理這個(gè)請(qǐng)求,處理完畢將結(jié)果返回客戶端。

OK,好像并沒(méi)有太大的改進(jìn)嘛,不要著急,在ASP.NET Framework中我們甚至能夠了解到HttpRuntime的細(xì)節(jié)。好,繼續(xù)深入下去:

當(dāng)Http Request進(jìn)入HttpRuntime之后,會(huì)繼續(xù)進(jìn)入到一個(gè)被稱之為HttpApplication Factory的一個(gè)Container中,她會(huì)給出一個(gè)HttpApplication來(lái)處理傳遞進(jìn)來(lái)的請(qǐng)求,這個(gè)請(qǐng)求會(huì)依次進(jìn)入如下幾個(gè) Container:

HttpModule->HttpHandler Factory->HttpHandler。

當(dāng)系統(tǒng)內(nèi)部的HttpHandler的ProcessResquest方法處理完畢之后,整個(gè)Http Request就完成了,客戶端也就得到相應(yīng)的東東了。

整理一下ASP.NET Framework處理一個(gè)Http Request的流程:

HttpRequest-->inetinfo.exe-->ASPNET_ISAPI.dll-->Http Pipeline-->ASPNET_WP.exe-->HttpRuntime-->HttpApplication Factory-->HttpApplication-->HttpModule-->HttpHandler Factory-->HttpHandler-->HttpHandler.ProcessRequest()

上述內(nèi)容就是.NET Framework運(yùn)行機(jī)制知識(shí)有哪些,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI