马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

ASP.NET运行原理

[复制链接]
查看4053 | 回复2 | 2013-5-14 08:52:46 | 显示全部楼层 |阅读模式
当一个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把响应结构返回给客户端。





C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
chao2332601 | 2013-6-16 04:08:59 | 显示全部楼层
谢谢分享!!!
lshjune | 2016-3-15 09:58:12 | 显示全部楼层
感谢分享
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则