ASP.NET运行原理
当一个HTTP请求到服务器并被IIS接受,IIS首先通过客户端请求的页面类型为其加载相应的.dll文件,然后在处理过程中将这条请求发送给能够处理这个请求的模块HttpHandler(HTTP处理程序组件),之所以.aspx文件可以被服务器处理,就是因为在服务器端有,默认的HttpHandler专门处理.aspx文件。IIS在将这条请求发送给能够处理这个请求的模块之前,还需要经过一些HttpModule的处理,这些都是系统默认的Modules(用于获取当前应用程序的模块集合),在这个HTTP请求传到HttpHandler之间要经过不同的HttpModule的处理。
[*]是为了一些必须的过程
[*]是为了安全性
[*]是为了提高效率
[*]是为了用户能够在更多环节上进行控制,增强用户的控制能力
HttpModule模块是一个组件,可以注册为ASP.NET请求生命周期的一部分,当处理该组件时,该组件可以读取或更改请求或响应。HttpModule模块通常用于执行需要监视每个请求的特殊任务,如安全或站点统计信息。
ASP.NET框架搭建在WindowsServer+IIS(Web服务器,Internet信息服务管理器)环境中,在安装.NET Framework 时,安装程序将会在IIS中注册ASP.NET所需要的ISAPI扩展(aspnet_isapi.dll),这使作为ASP.NET宿主的IIS在接受到客户端的HTTP请求后,将响应请求的控制权交给ASP.NET运行。
ASP.NET运行时接受到请求后,会判断站点是否为第一次被访问,如果是第一次访问,则运行初始化工作(加载Bin目录中的DLL动态链接库,读取Web.Config网站配置文件,初始化HttpApplication实例,编译和加载Global.asax文件)
Global.asax全局应用文件
如果没有全局应用程序,应用程序将对所有事件应用由HttpApplication类提供的默认行为。ASP.NET运行时还负责创建请求响应线程的HttpContext上下文实例和创建承载响应结果的HttpTextWrite 实例。然后,ASP.NET运行时寻找合适的HttpHandler(通常是具有ASP.NET页面)处理HTTP请求,并等HTTP返回请求处理结果。最后ASP.NET完成一些后续工作,如保存Session,异常处理,在通过IIS把响应结构返回给客户端。
http://pic002.cnblogs.com/images/2012/433002/2012112520353956.png
http://pic002.cnblogs.com/images/2012/433002/2012112520592875.png
谢谢分享!!! :):):)感谢分享
页:
[1]