UrlRouteModule

一、请求流程

当一个请求发往ASP.net MVC站点时的情景,IIS收到请求并将请求转到ASP.net,然后根据URL,或者更确切来说:被请求文件的扩展名.在IIS7 integrated模式下(默认模式),所有的请求都会匹配到ASP.net中,而在IIS6中,你可以通过通配符来达到和IIS7相同的效果.

在ASP.NET MVC程序中首先涉及的部件是UrlRoutingModule,它是System.Web.Routing的一部分.UrlRoutingModule用于第一次检查请求的url和本地磁盘中的文件是否相匹配。如果匹配,UrlRoutingModule会将请求直接回发给IIS,IIS根据地址来进行相应。如果UrlRoutingModule没有在磁盘中找到匹配的文件。它会检查RouteCollection结构来决定是否继续传递请求.UrlRoutingModule会引入RouteHandler和匹配的路径入口(默认情况下是MvcRouteHandler)。而后会引入合适的HttpHandler来处理和请求有关的逻辑。默认情况下,这个HttpHandler会是MvcHandler.而对于图片文件,一般会存在于程序中的某个子目录中,核心的routeModule并没有这种能力因为直接索取图片的url回优先回发给iis,而流程在这时无法执行到RouteHandler被引入.

原文:http://www.cnblogs.com/CareySon/archive/2009/12/30/1636438.html

二、其他资料

1.http://www.cnblogs.com/TomXu/p/3756858.html

2.http://www.cnblogs.com/wangiqngpei557/p/3379095.html

时间: 2024-10-06 23:02:41

UrlRouteModule的相关文章

探索ASP.NET MVC路由系统

引言 对于ASP.NET MVC的路由系统相信大家肯定不陌生.今天我们就深入ASP.NET的框架内部来看一下路由系统到底是怎么通过我们给出的地址(例如:/Home/Index)解析出Controller和Action.今天的这一篇文章我们就深入框架内部,看看里面的流程. UrlRouteModule介绍 ASP.NET MVC本质上是通过IHttpModule和IHttpHandler两个组件对ASP.NET框架进行扩展来实现的.ASP.NET 请求处理过程是基于管道模型的,这个管道模型是由多个

经典ASP.NET MVC3.0入门详解

http://blog.csdn.net/csh624366188/article/details/7064269 :由于本文原在word文档里编写,写本文章时运用了大量截图,直接复制到博客里,没有显示图片, 图片只是一些简单的运行结果截图,不影响大家学习 p.Net MVC已经到第三版了,相信大家也都熟悉了,我也不再重复相关概念性的东西了.但是大家一定要了解,Asp.Net MVC是微软的一 个开源的UI层框架,是AspNet的另外一种开发模式.好废话不多说,那我们开始进入Asp.Net MV

ASP.NET MVC笔记誊录

非托管代码:像由c++写的程序直接把二进制代码交给操作系统的内核来处理,叫做非托管代码 托管代码:运行在CLR下面的代码叫托管代码,由CLR来对代码进行异常等处理,编译成平台代码 匿名函数: public delegate int AddDel(int a,int b); 简单委托: AddDel delDemo=new AddDel(AddInt) public int AddInt(int a,int b) { return a+b; } 泛型委托,一般用于约束返回值和传入的参数 publi

学习ASP.NET MVC5框架揭秘笔记-ASP.NET MVC是如何运行的(三)

Controller的激活 ASP.NET MVC的路由系统通过注册的路由表对当前HTTP请求实施路由解析,从而得到一个用于封装路由数据的RouteData对象,这个过程是通过自定义的UrlRoutingModule对HttpApplication的PostResolveRequestCache事件进行注册实现的.由于得到的RouteData对象中已经包含了目标Controller的名称,我们需要根据该名称激活对应的Controller对象. 1.MvcRouteHandler 通过前面的介绍我

Fun with Asp.net MVC 3 Custom Json Model Binder

If you have been using Asp.net MVC for quite a while then your are probably familiar with the concept of model binding and more specifically Json Model Binding. Starting from MVC3, Asp.net MVC is elegantly capable of binding json string passed from c

Orchard源码分析(7.1):Routing(路由)相关

概述 关于ASP.NET MVC中路由有两个基本核心作用,一是通过Http请求中的Url参数等信息获取路由数据(RouteData),路由数据包含了area.controller.action的名称等信息.只有获取了匹配的路由数据,才有可能转入ASP.NET MVC管道:二是根据由规则生成Url,比如要根据某些数据生成View上显示的链接. Orchard对路由进行扩展主要基于如下原因: (1).路由定义在各个模块中.在Orchard应用程序初始化时将分散在各个模块的路由定义收集起来统一注册.

MVC路由规则

1 可以创建多条路由规则,每条路由规则的那么属性不同 2路由规则是有顺序的.如果被前面的规则匹配了,那么后面的规则就没机会了 3 constraints 约束: 4namespaces 命名空间 5route 对象:路由规则对象 6routedate 放url地址匹配上来路由规则后解析出来的数据 7routecollection 路由规则集合 8 routetable 路由表 静态的路由规则集合对象 9 urlroutemodule 注册了第7个事件指定了mvchendler 10 根据url地

Asp.Net MVC的路由

通过前面几篇博文的介绍,现在我们已经清楚了asp.net请求管道是怎么一回事了,这篇博文来聊聊MVC的路由. 其实MVC的请求管道和Asp.Net请求管道一样,只是MVC扩展了UrlRoutingModule的动作.我们知道MVC网站启动后第一个请求会执行Global.asax文件中的Application_Start方法,完成一些初始化工作,其中就会注册路由,先来看下面一张图,该图可以直观的展示了MVC执行的流程. 结合上图,我们一起来看看代码是如何实现路由的注册的. protected vo

Asp.net管道模型之(HttpModules 和 HttpHandler)

上一节我们从大概范围介绍了管道模型的整体流程,我们从其中知道管道最重要的两大组件为:HttpModules 跟 HttpHandler.今天我们着重来介绍一下这两大组件 一:asp.net处理管道 从请求进入ASP.NET工作者进程,直至它到达最终的处理程序之前要经过一系列的步骤和过程,这个步骤和过程称为ASP.NET处理管道. 管道模型使用一个HttpContext对象去描述声明request/response信息.这个对象在HttpApplication和handler之间来回传递.Http