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   按如下流程:


展开阅读全文

没有更多推荐了,返回首页