解析Asp.Net頁面執(zhí)行流程_.Net教程
推薦:如何用.NET讀取 Flash格式文件信息一直以來存在這么一個問題,就是當用戶上傳的Flash文件時都需要附帶輸入Flash的寬和高,否則顯示的時候由于不知道這些數(shù)值而導致Flash比例不正常。 近日我做網(wǎng)站也涉及到了這方面的問題
在我的上一篇文章中說到了HttpModule、HttpHandle的簡單使用,我們可以利用它們在頁面請求的過程中加入自己的事件處理程序。那么在一個aspx頁面請求時后臺到底做了什么?當然asp.net做了很多事情,過程也比較復雜,本文主要分析一下大體的流程。總體流程如下:
請求一個頁面時首先被WWW服務截獲(inetinfo.exe進程),這個進程首先判斷頁面的后綴,然后根據(jù)IIS中的配置來決定調(diào)用哪個擴展程序,比如aspx的頁面就會調(diào)用c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll,aspneface="Verdana">t_isapi.dll將請求發(fā)送給w3wp.exe進程(我們在調(diào)試IIS中網(wǎng)站時就是把VS2005附加到這個進程上的)。接下來w3wp.exe進程就會調(diào)用.net類庫進行具體處理:ISAPIRuntime-->HttpRuntime-->HttpApplicationFactory-->HttpApplication-->HttpModule--HttpHandlerFactory-->HttpHandler 這也是本文主要分析的地方。 下面只是列出主要流程,如果喜歡鉆研的同學可以用Reflector去查看一下:
|
以下為引用的內(nèi)容: ISAPIRuntime |
它的主要作用是調(diào)用一些非托管代碼生成HttpWorkerRequest對象,該對象包含當前請求的所有信息,然后傳遞給HttpRuntime,這里生成的HttpWorkerRequest對象可以直接在我們的頁面中調(diào)用的,通過它取得原始的請求信息:
| 以下為引用的內(nèi)容:
IServiceProvider provider = |
二:HttpRuntime
最主要的就是private void ProcessRequestInternal(HttpWorkerRequest wr)方法:
|
以下為引用的內(nèi)容: context = new HttpContext(wr, false); |
1、根據(jù)HttpWorkerRequest對象生成HttpContext,HttpContext應該大家都很熟悉的,它包含request、response等屬性,在頁面中經(jīng)常會用到的;
2、調(diào)用HttpApplicationFactory來生成IHttpHandler(這里生成的是一個默認的HttpApplication對象,HttpApplication也是IHttpHandler接口的一個實現(xiàn))
3、調(diào)用HttpApplication對象執(zhí)行請求
三:HttpApplicationFactory
原文地址:http://bbs.mb5u.com/Design/thread-1167995-1-1.html
分享:解析VC.NET擴展Windows磁盤清理工具的功能摘 要 介紹了Windows磁盤清理工具二次開發(fā)的擴展接口,對其COM接口加以分解,并運用ATL庫具體實現(xiàn)了清理“*.tmp”臨時文件的功能。
關鍵詞 磁盤清理工具、ATL庫、COM接口。
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實例(可帶附件)
- js實現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進度條的實現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現(xiàn)分頁示例代碼
- 相關鏈接:
- 教程說明:
.Net教程-解析Asp.Net頁面執(zhí)行流程
。