很多盆友咨询ASP.NET MVC的机制。网上也有好多。但是都是相当深奥。看的云里雾里的。我今天抽空,整理个简易版本。把处理流程走一遍。

当然,这个只是处理请求的一部分环节。百度的面试题“客户端从浏览器发送一个请求,要经过哪些路程。。。”看似简单的问题,问的很有深度。

我们不关注 从客户端HTTP->TCP->DNS->Server->Application->..................Client  这个完整的路线和插曲。我们就看看程序那一块。

我这说的是ASP.NET MVC的Web程序,其它的请绕行哈.

IIS 6 7 8的变化,自行找资料。不影响ASP.NET 的处理机制。

开始步骤:

1.服务器监听TCP请求处理,转发给IIS.........

1.

1-2

2. IIS 接受到请求后,发送给Web程序。

3.Web程序在启动的时候,触发一系列的事件。

4.请找些资料 理解上面的管道模型 ,理解 HttpModule 、HttpHandler。Web程序启动的时候,事件注册顺序表,来自MSDN。

5 .穿过注册的Module后,才进入对应的 Handler 进行请求处理。MVC在配置文件中,加载注册了路由模块。

7.System.Web.dll 中的URL

UrlRoutingModule : IHttpModule

在程序启动的时候,触发注册模块的 Init 方法。

8.此方法为 HttpApplication 的事件 PostResolveRequestCache 注册了处理程序 。在触发此事件的时候,进行了请求的路由检测。路由数据,RouteTable是当前应用程序域-AppDomain下的一个单例模式的事例。实现在应用程序级别的路由数据共享。

9. 在应用程序启动的时候,使用单例的路由表 RouteTable对象,进行路由注册的注册配置。

好了。路由数据已经准备初始化完毕,各项处理事件也注册完毕。当请求进入当前程序时候,进入管道模型,最终到达处理程序Handler,将生成的响应数据返回。

----------------------------------关于管道模型的设计-------------------------------------

附加:

参考文献:深入理解ASP.NET的内部运行机制

Asp.net管道模型(管线模型)之一发不可收拾

https://msdn.microsoft.com/en-us/library/system.web.httpapplication(v=vs.80).aspx

【图解ASP.NET MVC运行机制理解-简易版】的更多相关文章

  1. ASP.NET MVC运行机制源码剖析

    我们都知道ASP.NET首先是从Global.aspx中开始运行的, 在Application_Start()中添加路由映射后, 就由URLRouting组件创建IRouteHandler并执行, 在 ...

  2. NET MVC运行机制

    [图解ASP.NET MVC运行机制理解-简易版]   很多盆友咨询ASP.NET MVC的机制.网上也有好多.但是都是相当深奥.看的云里雾里的.我今天抽空,整理个简易版本.把处理流程走一遍. 当然, ...

  3. ASP.NET MVC 学习1、新增Controller,了解MVC运行机制

    1,turorial ,根据链接教程新建一个MVC项目 http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/ ...

  4. 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC

    系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)— ...

  5. 【ASP.NET MVC系列】浅谈ASP.NET MVC运行过程

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  6. 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 【转】

    http://www.cnblogs.com/powertoolsteam/p/MVC_one.html 系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会A ...

  7. MVC运行机制[转]

    原:http://www.cnblogs.com/jyan/archive/2012/06/29/2569566.html#3122335 ASP.NET是一种建立动态Web应用程序的技术.它是.NE ...

  8. IIS6配置Asp.net MVC运行环境

    Windows server 2003 + IIS6 搭建Asp.net MVC运行环境 1.安装.Net Framework4.0. 下载地址: http://www.microsoft.com/z ...

  9. 【转载】ASP.NET页面运行机制以及请求处理流程

    本文转至 ASP.NET页面运行机制以及请求处理流程 IIS处理页面的运行机制 IIS自身是不能处理像ASPX扩展名这样的页面,只能直接请求像HTML这样的静态文件,之所以能处理ASPX这样扩展名的页 ...

随机推荐

  1. SIM卡基础,各管脚意义,封装定义

    1. SIM简介 SIM卡(Subscriber Identity Module).即用户识别模块,是一张符合GSM规范的"智慧卡".SIM卡可以插入任何一部符合GSM规范的移动电 ...

  2. SendMessage参数

    http://download.csdn.net/download/wshjldaxiong/4830242

  3. spserver 开源服务器框架研究与分析

    网上开源的C/C++服务器框架 还是比较少的. 最近研究了 spserver , 里面用了较多的设计模式,使用设计模式的目的是把不变的东西和可变的东西分离并且封装起来,避免以后修改代码, 应用设计模式 ...

  4. MVC4+Springnet+Nhibernate学习系列随笔(一)

    Springnet与asp.net mvc4集成大体步骤 1.首先要在MVC项目中引用的两个程序集(Spring.Web与Spring.Web.Mvc4) 集 2.修改MVC项目的Global.asa ...

  5. gnuplot

    一. 简介 gnuplot是一个命令行驱动的科学绘图工具,可将数学函数或数值资料以平面图或立体图的形式画在不同种类终端机或绘图输出装置上.gnuplot既支持命令行交互模式,也支持脚本. 二. 特性 ...

  6. HDU3336——KMP算法

    题意是问所有前缀出现的次数和,mod10007: 想一想next数组代表什么意思,是从当前失配位置走到上一个匹配位置的后面,next[i]的值说明以当前位置为结尾,长度为next[i]的后缀,与以开头 ...

  7. QQ聊天界面的布局和设计(IOS篇)-第二季

    QQChat Layout - 第二季 本来第二季是快写好了, 也花了点功夫, 结果gitbook出了点问题, 给没掉了.有些细节可能会一带而过, 如有疑问, 相互交流进步~. 在第一季中我们完成了Q ...

  8. SqlServer 查询表、表说明、关联表、字段说明,语句汇总

    ----查询所有的表 SELECT * FROM SYSOBJECTS WHERE TYPE='U' ----根据表名查询所有的字段名及其注释 SELECT A.NAME,B.VALUE FROM S ...

  9. 关于NetBeans IDE的配置优化

    首先,IDE的版本最好对应着JDK的版本. NetBeans优化的目的是提高NetBeans的启动速度和运行速度.下面介绍的NetBeans优化技巧是在版本6.0beta2上的优化.经过实验,大大提高 ...

  10. linux svn安装和配置

    linux svn安装和配置,不结合apache http://blog.51yip.com/server/901.html 张映 发表于 2010-07-07 分类目录: 服务器相关 今天有个同事在 ...