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

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

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

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

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

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

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

        }

        application.Cont