ASP_NET页面与IIS底层交互和工作原理

ASP_NET页面与IIS底层交互和工作原理

ID:32809811

大小:747.43 KB

页数:32页

时间:2019-02-15

ASP_NET页面与IIS底层交互和工作原理_第1页
ASP_NET页面与IIS底层交互和工作原理_第2页
ASP_NET页面与IIS底层交互和工作原理_第3页
ASP_NET页面与IIS底层交互和工作原理_第4页
ASP_NET页面与IIS底层交互和工作原理_第5页
资源描述:

《ASP_NET页面与IIS底层交互和工作原理》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、ASP.NET页面与IIS底层交互和工作原理详解第一回:引言我查阅过不少Asp.Net的书籍,发现大多数作者都是站在一个比较高的层次上讲解Asp.Net。他们耐心、细致地告诉你如何一步步拖放控件、设置控件属性、编写CodeBehind代码,以实现某个特定的功能。这种做法,实际上是回答了“如何去做”的问题,却没有回答“为什么可以这样做”的问题。尽管我很推崇悉江华先生的《圣殿祭祀的Asp.Net开发详解》一书,但当我翻看了一下其对角色(Role)和用户(Member)的讲解时,我决定跳过去直接读后面的章节。因为我发现他也随了大流,对这部分的讲解停留在“如何去做”的层面上。我相信像悉先生这样的

2、牛人是不可能不了解底层运作原理的,仅仅是因为那本书原本就已经很厚了吧。当你按“如何去做”所讲解的内容去开发程序的时候,对于你的用户,你仍是一名程序员;但对于实现了MembershipProvider和RoleProvider抽象类的微软开发人员来说,你已经成了他们的一个用户。NOTE:我既不反对一些作者只讲解“如何去做”,也不反对你只学“如何去做”,这样也有它的好处,就是可以快速开发。我只是建议多掌握一点底层知识,对一些问题会有更好的理解。希望通过这一系列文章的讲解,可以让你更好的理解Asp.Net的运作原理和做以了解。Http请求处理流程概述思考“为什么在地址栏输入www.tracefa

3、ct.net就可以看到张子阳的个人空间?”,类似于思考“为什么苹果是往地上掉不是往天上飘?”。对于普通访问者来说,这就像每天太阳东边升起西边落下一样是理所当然的;对于很多程序员来说,认为这个与己无关,不过是系统管理员或者网管员的责任。毕竟,IIS是Windows的一个组件,又不是Asp.Net的一个组成部分。而实际上,从你轻拍回车到页面呈现在你眼前的十分之一秒内,IIS和.NetFramework已经做了大量的幕后工作。你可能觉得了解这些幕后工作是如何运作的无关紧要,作为程序员的你只要保证开发出的程序可以高效地运行就可以了。然而,在开发过程中,你却发现常常需要使用诸如HttpContext

4、这样的类。这个时候,你可曾思考过这些类的构成和类的实体是如何创建的?你可能简单地回答:HttpContext代表当前请求的一个上下文环境。可你又知道IIS、Framework、Asp.Net是如何协同工作处理每个Http请求、如何区分不同的请求、IIS、Framework、Asp.Net三者之间的数据如何流动么?回答上面这些问题,首先需要了解IIS是如何处理页面请求的,这也是理解Form验证模式和Windows验证模式的基础。Http请求刚刚到达服务器的时候当服务器接收到一个Http请求的时候,IIS首先需要决定如何去处理这个请求(NOTE:服务器处理一个.htm页面和一个.aspx页面肯

5、定是不一样的么)。那IIS依据什么去处理呢?――根据文件的后缀名。服务器获取所请求的页面(NOTE:也可以是文件,比如jimmy.jpg)的后缀名以后,接下来会在服务器端寻找可以处理这类后缀名的应用程序,如果IIS找不到可以处理此类文件的应用程序,并且这个文件也没有受到服务器端的保护(NOTE:一个受保护的例子就是App_Code中的文件,一个不受保护的例子就是你的js脚本),那么IIS将直接把这个文件返还给客户端。能够处理各种后缀名的应用程序,通常被称为ISAPI应用程序(NOTE:InternetServerApplicationProgrameInterface,互联网服务器应用程序

6、接口)。虽然这ISAPI听上去还挺气派,也算是“应用程序”呢,但仔细看看它的全称就明白了:它实际上只是一个接口,起到一个代理的作用,它的主要工作是映射所请求的页面(文件)和与此后缀名相对应的实际的处理程序。让我们更进一步地看一下ISAPI,看看它到底是什么样子,请按下面的步骤进行:1.打开IIS。2.选择随意一个站点,鼠标右键,“属性”。3.选择“主目录”选项卡。4.选择“配置”。你应该会看到如下的画面:图1.应用程序配置很清楚地就可以看到,所有IIS所能处理,或者叫ISAPI所提供代理服务的文件类型及其相对应的实际的后台处理程序都在这里清楚地列出来了。我们找到.aspx的应用处理程序,然

7、后点“编辑”,会出现下面的画面:图2.编辑.aspx文件的处理程序一路看到这里,可以看出,所有的.aspx文件实际上都是由aspnet_isapi.dll这个程序来处理的,当IIS把对于.aspx页面的请求提交给了aspnet_isapi.dll以后,它就不再关心这个请求随后是如何处理的了。现在我们应该知道:Asp.Net只是服务器(IIS)的一个组成部分而已,它是一个ISAPI扩展。这里需要注意两点:当你修改“限制为

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。