ASP.NET页面剖析(1)
在Web应用程序上下文中,ASP.NET页面会在第一次被请求时,按需被动态编译。动态编译并不是ASP.NET页面(.aspx文件)特有的,
还发生在.NET
Web服务(.asmx文件)、Web用户控件(.ascx文件)、HTTP处理程序(.ashx文件),以及其他几种ASP.NET应用程序文件(如
global.asax文件)身上。运行时管道模型负责处理输入的(incoming)HTTP数据包,使其从一个简单的特定协议有效负载转化为服务器端
ASP.NET对象——准确地说,是一个系统Page类的派生类的实例。ASP.NET中的HTTP运行库会处理页面对象,将生成的标记插入响应序列中。
处理用户代码的若干事件标志着响应序列的生成各个阶段,整个过程称为“页面的生命周期”(page life cycle)。
本章会介绍如何将.aspx页面的HTTP请求映射为页面对象、Page类的编程接口,以及如何通过页面生命周期中的事件处理控制标记的生成。
页面的调用
先让我们具体认识一下.aspx页面是如何被转化为类并编译为程序集的。特定.aspx资源的程序集的生成,分为两个步骤进行。首先,该资源文件的
源代码会被解析,根据得到的信息,从Page类(或Page的派生类)派生出相应的类。然后,动态生成的类会被编译为程序集,该程序集之后会被缓存到
ASP.NET专用的临时目录下。
只要链接的(linked).aspx源文件没有被更改,且整个应用程序没有重启,已编译的页面就一直存在。对已链接的.aspx文件的任何更改,将使相关程序集变为无效,并在该页面下一次被请求时,强制HTTP运行库创建新的程序集。
提示:编辑web.config和global.asax之类的文件会导致整个应用程序重启。在这种情况下,在某个页面被请求时,所有页面会被重新编译。如果Bin文件夹中的程序集被改动(新建或被替换),所有页面也会被重新编译。
运行机制
能够通过基于Internet信息服务(IIS)的Web服务器访问的所有资源,会按扩展名进行组织。任何来访的请求会被分配给特定的运行时进程模
块进行实际的处理。IIS上下文中能够处理Web资源的模块是Internet服务器应用程序编程接口(ISAPI)扩展——实际是普通的传统Win32
动态链接库(DLL),很像接口,通过预定义的名称和原型,向外暴露了许多API函数。IIS和ISAPI扩展会针对专用的通信协议使用这些DLL入口方
法。当IIS需要ISAPI扩展完成某项任务时,它会在是加载相应的DLL,并通过有效参数调用适当的函数。虽然ISAPI文档没有指出ISAPI为接
口,但它的确是实现了一组公共编程接口的模块。
当某个资源的请求到
相关文档:
session
===================================
session对象用于存储特定的用户会话所需的信息 。 Session对象的引入是为了弥补HTTP协议的不足,HTTP协议是一种无状态的协议。
Session中文是“会话”的意思,在ASP中代表了服务器与客户端之间的“会话”。Session的作用时间从用户到达某个特定的 ......
ASP.NET的配置是从machine.config文件开始的,通常情况下这个文件被放在"c:\Windows\Microsoft.NET\Framework\v2.0.50727\Config"目录中,这文件中定义了ASP.NET所支持的配置文件的各个部分,包括ASP.NET工作进程的配置,以及注册一些能够提供诸如属性配置(profiles)、成员资格(membership)、基于角色的安 ......
<一>页面级的错误处理
void Page_Error(Object sender, EventArgs e) {
String message = "<font face=verdana color=red>"
......
1、绝对路径连接字符串
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\somepath\myDb.mdb
2、相对路径连接字符串
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/date/fghsdf.mdb")
可以用:
web.config:
<appSettings>
<add key="ConnectString" value="Provider=Mic ......