這一篇主要講如何通過Asp.net處理管道把請求交給MVC進(jìn)行處理的(進(jìn)入MVC處理通道)。

首先來看一下經(jīng)典的Asp.net處理管道的生命周期。

 大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

我們知道一個(gè)ASP.NET應(yīng)用程序可以有多個(gè)HttpModule,但是只能有一個(gè)HttpHandler,并且通過這個(gè)HttpHandler的BeginProcessRequest(或ProcessRequest)來處理并返回請求,查看聲明處理管道周期可知在MapHttpHandler這個(gè)周期將會(huì)根據(jù)請求的URL來查詢對應(yīng)的HttpHandler,那么它是如何查找的呢。

查找系統(tǒng)web.config中的httpModules配置節(jié),在倒數(shù)第二行發(fā)現(xiàn)一個(gè)name為UrlRoutingModule-4.0的IHttpModule配置,這是查找HttpHandler的關(guān)鍵之處。下面分析一下UrlRoutingModule的代碼:

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

    protected virtual void Init(HttpApplication application) {        if (application.Context.Items[_contextKey] != null) {            return;

        }

        application.Cont
        
		

網(wǎng)友評論