ASP.NET页面与IIS底层交互和工作原理详解

2013 年 6 月 21 日5910

ASP.NET页面与IIS底层交互和工作原理详解

ASP.NET页面与IIS底层交互和工作原理详解
第一回:
引言
我查阅过不少Asp.Net的书籍,发现大多数作者都是站在一个比较高的层次上讲解Asp.Net。他们耐心、细致地告诉你如何一步步拖放控件、设置控件属性、编写CodeBehind代码,以实现某个特定的功能。
这种做法,实际上是回答了“如何去做”的问题,却没有回答“为什么可以这样做”的问题。
尽管我很推崇 悉江华 先生的《圣殿祭祀的Asp.Net开发详解》一书,但当我翻看了一下其对角色(Role) 和 用户(Member)的讲解时,我决定跳过去直接读后面的章节。因为我发现他也随了大流,对这部分的讲解停留在“如何去做”的层面上。我相信像悉先生 这样的牛人是不可能不了解底层运作原理的,仅仅是因为那本书原本就已经很厚了吧。
当你按“如何去做”所讲解的内容去开发程序的时候,对于你的用户,你仍是一名程序员;但对于实现了MembershipProvider 和 RoleProvider 抽象类的微软开发人员来说,你已经成了他们的一个用户。
NOTE:我既不反对一些作者只讲解“如何去做”,也不反对你只学“如何去做”,这样也有它的好处,就是可以快速开发。我只是建议多掌握一点底层知识,对一些问题会有更好的理解。
希望通过这一系列文章的讲解,可以让你更好的理解Asp.Net的运作原理和做以了解。
Http请求处理流程概述
思考“为什么在地址栏输入http://www.zjjv.com/就可以看到张子阳的个人空间?”,类似于思考“为什么苹果是往地上掉不是往天上飘?”。对于普通访问者来说,这就像每天太阳东边升起西边落下一样是理所当然的;对于很多程序员来说,认为这个与己无关,不过是系统管理员或者网管员的责任。毕竟,IIS是 Windows 的一个组件,又不是 Asp.Net 的一个组成部分。而实际上,从你轻拍回车到页面呈现在你眼前的十分之一秒内,IIS和.Net Framework已经做了大量的幕后工作。
你可能觉得了解这些幕后工作是如何运作的无关紧要,作为程序员的你只要保证开发出的程序可以高效地运行就可以了。然而,在开发过程中,你却发现常常需要使用诸如 HttpContext 这样的类。这个时候,你可曾思考过这些类的构成和类的实体是如何创建的?你可能简单地回答:HttpContext代表当前请求的一个上下文环境。可你又知道IIS 、Framework、Asp.Net 是如何协同工作处理每个Http请求、如何区分不同的请求、IIS、Framework、Asp.Net三者之间的数据

相关文档:

ASP.NET获取隐藏文件的类名

ASP.NET获取隐藏文件的类名(原) http://http://www.zjjv.com//blogs.com/lin614/archive/2008/01/25/1052676.html 这个问题在开发中遇到。
this.GetType().  得到的:   ASP.****_ASPX  
那我该如何才能得到   类名:****。通过字符串处理得到的类名总感觉不是正规途径。
经过查询资料 ......

学习ASP.NET + MVC(二)

一.摘要
  本篇文章从基础到深入的介绍ASP.NET MVC中的Routing组件. Routing翻译过来是"路由选择", 负责ASP.NET MVC的第一个工作:识别URL, 将一个Url请求"路由"给Controller. 由于今天下午参加了博客园北京俱乐部的聚会, 所以本篇文章的完工时间晚了点, 还好也是在今天发表, 总算兑现了"每日一篇"的承诺. 不久丁学就会发 ......

ASP.NET面试题大全(附答案 经典版)

1. 简述 private、 protected、 public、 internal 修饰符的访问权限。
答 . private : 私有成员, 在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同一命名空间内可以访问。
2 .列举ASP.NET 页面之间传递值的几种方式。
......

ASP.NET程序中 抛出"Thread was being aborted. "异常

今天突然遇到这个问题了!不过刷新页面后错误就没有! 而且之前也没有这个错误哦! ... 不过我还是去Google了一下答案!
Thread was being aborted :中文意思 线程被终止
引用地址:http://http://www.zjjv.com///default.aspx/kb/312629/EN-US/?p=1
原因:
那个 Response.End 方法结束页的执行,并转移到执行 的Applic ......

ASP.NET的iframe

很近没有使用.net了,不知是记忆力不行了,还是什么的,iframe的用法都忘记了,在设计url跳转target的时候总是不成功。郁闷了我,网上搜索了一阵还是没有发现是怎么回事,后来干脆看以前的web页面,找了好久,终于找到,原来在设计iframe的时候,不仅需要id,更需要name属性,而vs中提供的iframe属性没有name,所以害我忙活 ......

0 0