这一篇主要讲如何通过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