Asp.net MVC进入请求管道的过程

一:Asp.Net MVC请求处理原理(Asp.Net mvc 是怎样进入请求管道的。)


请求-->IIS--->ISAPIRuntime-->HttpWorkRequest-->HttpRuntime-->HttpContext-->找到Global文件,并且编译该文件-->确保Global文件中Application_Start被调用-->创建HttpApplication(池 栈)如果池中没有根据Global文件编译的类型通过反射的形式创建出HttpApplication-->获取所有的在配置文件中的HttpModues,这时System.Web.Routing下的UrlRoutingModule也获取了,执行每个Modules下的Init方法,那么UrlRoutingModule中的Init方法完成了请求管道第7个事件的注册。--->进入管道-->第7个事件触发了,执行相应的方法.--->完成了MVCHanlder的创建。---》请求管道的11与12事件之间执行MvcHandler中的ProcessRequest方法。那么该方法中去找控制器,找方法,执行方法中的代码,然后找视图最后渲染视图。

编译Global文件的时候执行:

先执行右侧再执行左侧  右侧创建MvcApplication(HttpApplication)的时候执行依次初始化各Module, 左侧在执行到UrlRoutingModule 时候注册第七个事件,然后在11、12个事件之间执行下面代码,创建(MVCHandler)httpHandler,将当前请求映射到此(MVCHandler)HttpHandler ,如果是一般处理程序 执行程序员自定义的代码,如果是aspx页执行PageLoad  如果是MVC 查找控制器执行对应方法,渲染视图



如果是mvcHandler   按如下流程:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值