这一篇主要讲如何通过Asp.net处理管道把请求交给MVC进行处理的(进入MVC处理通道)。

首先来看一下经典的Asp.net处理管道的生命周期。

 大数据培训,云培训,数据挖掘培训,云计算培训,高端软件开发培训,项目经理培训

我们知道一个ASP.NET应用程序可以有多个HttpModule,但是只能有一个HttpHandler,并且通过这个HttpHandler的BeginProcessRequest(或ProcessRequest)来处理并返回请求,查看声明处理管道周期可知在MapHttpHandler这个周期将会根据请求的URL来查询对应的HttpHandler,那么它是如何查找的呢。

查找系统web.config中的httpModules配置节,在倒数第二行发现一个name为UrlRoutingModule-4.0的IHttpModule配置,这是查找HttpHandler的关键之处。下面分析一下UrlRoutingModule的代码:

大数据培训,云培训,数据挖掘培训,云计算培训,高端软件开发培训,项目经理培训

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

        }

        application.Cont