第 7 章 Web 应用配置

29
第7第 Web 第第第第 教教教教ASP.NET 教教教 教教教教教教教教教教 教教 一统 教教教教教教教 WEB 教教教教 教教 Web 教教 教教教 教教 、、 教教教教教教教教教教教教教教 ASP.NET 教教教教教教教 教教教 Global.asax 教教教 教教教教教教 教教教 。一 教教教教教教教教 ASP.NET 教教教教教教教教教教教教教 Web.Config

description

第 7 章 Web 应用配置. 教学提示: ASP.NET 提供了一个丰富的应用配置系统,以此建立所需要的 WEB 应用环境。帮助 Web 应用、站点、机器分别配置自己的扩展配置数据等。在 ASP.NET 应用项目中可以有一个名为 Global.asax 的文件。它主要负责一些高级别的应用程序事件,与 ASP.NET 的应用程序配置信息保存文件 Web.Config. 7.1 Web 应用系统概述. - PowerPoint PPT Presentation

Transcript of 第 7 章 Web 应用配置

Page 1: 第 7 章   Web 应用配置

第 7 章 Web 应用配置 教学提示: ASP.NET 提供了一个丰富的应

用配置系统,以此建立所需要的 WEB 应用环境。帮助 Web 应用、站点、机器分别配置自己的扩展配置数据等。在 ASP.NET 应用项目中可以有一个名为 Global.asax 的文件。它主要负责一些高级别的应用程序事件,与 ASP.NET 的应用程序配置信息保存文件 Web.Config

Page 2: 第 7 章   Web 应用配置

7.1 Web 应用系统概述 Web 应用系统的组件除了网页文件之外, AS

P.NET 2.0 同其他 ASP.NET 站点一样都是使用两个文件保存用于整个站点的配置信息和代码,这两个文件分别是 Web.config 和 Global.asax 。 Web.config 包含站点的配置信息;例如,指定一个定制的标准错误页面,当站点内发生错误时,向终端用户显示这个页面。 Global.asax 包含处理事件的代码,这些事件由站点的任意页面产生;例如,当用户第一次访问站点时运行的代码 ( 会话初始化 ) 。

Page 3: 第 7 章   Web 应用配置

7.2 Global.asax ASP .NET 应用程序被定义为可以从 Web

应用程序服务器上虚拟目录及其目录中调用的所有文件、页、处理程序、模块和可执行代码的总和。在每一个 ASP .NET 应用程序里都包含一个名为 Global.asax 的文件。它主要负责一些高级别的应用程序事件,例如应用程序的开始和结束、会话状态的开始和结束等。

Page 4: 第 7 章   Web 应用配置

7.2 Global.asax Global.asax 文件是一个可选文件,用户可以在

该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容不是给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象。该文件的名称必须是 Global.asax且必须存放在应用程序的根目录中。每个应用程序只能有一个 Global.asax 文件。

Page 5: 第 7 章   Web 应用配置

7.2.1 Global.asax 运行特点 Global.asax 文件类似于 ASP 中的 Global.as

a 文件,不过 Global.asax 支持更多的事件,除了支持 Application_OnStart 、 Application_OnEnd 、 Session_OnStart 与 Session_OnEnd 等事件外, Global.asax 还支持 Application_BeginRequest 、 Application_EndRequest 等。从概念上来说,这两者是非常类似的。当位于应用程序命令命名空间的任何资源或者 URL 被首次访问时, ASP.NET 系统将自动解析 Global.asax 文件并把它编译为动态的 .NET 框架类——此类派生 HttpApplication 基类并加以扩充

Page 6: 第 7 章   Web 应用配置

7.2.1 Global.asax 运行特点 Global.asax 文件是一个可选文件,用户

可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。如果不对它进行定义的话,则系统默认为用户未定义任何程序或会话事件处理程序。一般来说,如果用户不需要编写任何应用程序或者会话事件处理程序的话,可以选择不要 Global.asax 文件。

Page 7: 第 7 章   Web 应用配置

7.2.1 Global.asax 运行特点 Glabal.asax 文件是经过设置的。任何关

于该文件的直接 URL 请求都将被拒绝,所以外部的用户无法下载及查看其内容。当改变 Glabal.asax 文件的时候, .NET Framework 框架可以自动识别出这种变化。此时它会完成应用程序的所有当前的请求,重新启动应用程序。

Page 8: 第 7 章   Web 应用配置

7.2.2 Global.asax 的配置 Global.asax 文件是 ASP.NET 应用程

序的中心点。它提供无数的事件来处理不同的应用程序级任务,比如用户身份验证、应用程序启动以及处理用户会话等。你应该熟悉这个可选文件,这样就可以构建出健壮的 ASP.NET 应用程序。

Page 9: 第 7 章   Web 应用配置

7.2. Global.asax 的配置实例 在此用一个统计在线人数的简单例子说明 Global.asa

x 的使用。 创建新网站 启动 VS2005 并单击“文件” →“新建网站” , 选择

文件系统名为“ ex1” ,单击“确定”生成只有一个default 主页的网站。

在主页中添加事件代码 在“解决方案资源管理器”中双击“Ddefault.aspx.

cs” 项,在打开的代码 Page_Load 事件中输入: Response.Write(" 您的 SessionID 是 " + Ses

sion.SessionID); 其中 SessionID 是浏览器与服务器会话的唯一标识符,即不同的用户成员其 SessionI 是不同的。

Page 10: 第 7 章   Web 应用配置

7.2. Global.asax 的配置实例 创建 Global.asax 文件 我们注意到刚新建的网站并没有 Glob

al.asax ,现在创建 Global.asax 文件。单击“文件”→“新建文件”命令,打开“添加新项”对话框,如书 164 页图 7-1 、图 7-2 。并按书上要求输入相应的代码,就可以创建一个统计在线人数的程序

Page 11: 第 7 章   Web 应用配置

7.3 Web.Config 开发人员经常需要在网站的各个页面上都存储

一些全局性的信息。理想的做法是将这些信息集中存储在资料库中,而不是在网站的每个页面上都重复这样的操作,比如说,数据库连接串就是这样的信息。如果这些信息不是集中存储在特定区域中,而是在网站的每个需要连接数据库的页面上手工输入,这样当数据库连接串需要改动时将会很麻烦,就必须遍历网站中所有连接数据库的页面去修改。由此就引出了应用程序配置的概念

Page 12: 第 7 章   Web 应用配置

7.3 Web.Config 我们已经知道对 ASP . NET 应用程序配置进

行设置的一种方法是使用 Global.asax 文件。另一种为 ASP . NET 应用程序创建配置文件的方法是通过对 Web.config 的设置。

使用 ASP.NET 配置系统的功能,可以配置整个服务器上的所有 ASP.NET 应用程序、单个 ASP.NET 应用程序、各个页面或应用程序子目录。可以配置各种功能,如身份验证模式、页缓存、编译器选项、自定义错误、调试和跟踪选项等等。

Page 13: 第 7 章   Web 应用配置

7.3 Web.Config 一般在开发完 Web 应用程序后,都需要

在服务器上部署该应用程序。部署应用程序的过程是一个安装程序和配置程序的过程。 ASP.NET 站点配置的过程是一个编写配置代码的过程,这些配置信息都是保存在 Web.config 的文件中。开发人员可以按照网络和服务器的特点以及自身的需求完成配置程序的开发,并且在需要的时候比较灵活地改变这些设置。

Page 14: 第 7 章   Web 应用配置

7.3.1 Web.Config 运行特点 任何一个服务器配置系统都是一个丰富而复杂的

系统, ASP.NET 提供了一个层次配置架构及一套配置对象模型以帮助 WEB 应用、站点、机器分别配置自己的扩展配置数据,以此提高系统配置管理的操作简便性。

ASP.NET 允许配置内容可以和静态内容、动态页面、程序代码和组件放置在同一应用的目录结构下。当管理人员需要安装新的 ASP.NET 应用时,只需要将应用目录拷贝到新的机器上即可。

Page 15: 第 7 章   Web 应用配置

7.3.1 Web.Config 运行特点 ASP.NET 提供了扩展配置内容的架构,是开放

的、可扩充的,可以存放自己定义的信息,以支持第三方开发者配置自己的内容。

ASP.NET 可以自动监测到配置文件的更改并且将新的配置信息自动进行应用,无须管理人员手工干预。

ASP.NET 提供了一套完整的 API ,便于在程序里调用这些信息并修改配置,利用这套机制同样可以修改远程的计算机配置。

Page 16: 第 7 章   Web 应用配置

7.3.1 Web.Config 运行特点 ASP.NET 提供配置信息加密机制,即可对重要

信息进行加密。 ASP.NET 提供了专门用可视化工具对网站进行

配置的管理模式。 ASP.NET 配置系统的关键文件 Web.config 与

Global.asax 文件不同,这两者有很大的区别,Global.asax 中包含的是代码,而 Web.config中包含的是值。

Page 17: 第 7 章   Web 应用配置

7.3.1 Web.Config 运行特点 Web.config 文件是一个基于 XML 格式的

配置文件,所以必须在其中包含成对的标记,即开始标记与结束标记必须成对出现,而且是区分大小写的,编辑 Web.config文件时需特别注意。开发人员可以用任意标准的文本编辑器、 XML 解析器和脚本语言解释、修改配置内容。由于 XML 特点,Web.config 文件非常容易被开发者阅读及被程序识别和应用

Page 18: 第 7 章   Web 应用配置

7.3.1 Web.Config 运行特点

Web.config 文件可将配置的有关设置保存在该文件中而不对注册表作任何改动,所以只需将 Web.config 文件拷贝到另一服务器相应的文件夹中就可以方便地把该应用配置传到另一服务器之中。

Page 19: 第 7 章   Web 应用配置

7.3.2 Web.Config 配置

Web 配置文件 web.config 位于 Web 应用程序的任何目录中,子目录如果没有 web.config 文件,就是继承父目录 web.config 文件的相关设定;如果子目录有 web.config 文件,就会覆盖父目录 web.config 文件的相关设定。

Page 20: 第 7 章   Web 应用配置

7.3.2 Web.Config 配置 ASP.NET 配置层次结构具有下列特征: 使用应用于配置文件所在的目录及其所

有子目录中的资源的配置文件。 允许您将配置数据放在将使它具有适当范围(整台计算机、所有的 Web 应用程序、单个应用程序或该应用程序中的子目录)的位置。

Page 21: 第 7 章   Web 应用配置

7.3.2 Web.Config 配置 允许重写从配置层次结构中的较高级别继承的

配置设置。还允许锁定配置设置,以防止它们被较低级别的配置设置所重写。

将配置设置的逻辑组组织成节的形式。 配置级别为“服务器”的文件名为“Machine.

config” ,它包含服务器上所有 Web 应用程序的 ASP.NET 架构。此文件位于配置合并层次结构的顶层。

Page 22: 第 7 章   Web 应用配置

7.3.2 Web.Config 配置 配置级别为“根 Web” 的文件名为“ W

eb.config” ,它与 Machine.config 文件存储在同一个目录 <systemroot>\Microsoft.NET\Framework\<versionNumber>\CONFIG 中,它包含大部分 system.web 配置节的默认值。运行时,此文件是从配置层次结构中的从上往下数第二层合并的。

Page 23: 第 7 章   Web 应用配置

7.3.2 Web.Config 配置 配置级别为“网站”等的文件名都同上

一样为“ Web.config” ,它包含应用于该网站的设置,并向下继承到该站点的所有 ASP.NET 应用程序和子目录。

配置级别为“客户端应用程序目录”的文件名为“ ApplicationName.config” ,它包含 Windows 客户端应用程序(而非 Web 应用程序)的设置。

Page 24: 第 7 章   Web 应用配置

7.3.2 Web.Config 配置 在运行 asp.net 的时候,多个配置文件需要按照一定顺序

调用,其调用次序示例如下: 1. 机器的基本配置文件 C:\WINDOWS\Microsoft.NET\F

ramework\v2.0.50727\config\machine.config 2. Web 服务器的根配置文件 C:\WINDOWS\Microsoft.N

ET\Framework\v2.0.50727\config\web.config 3. Web 应用程序的根配置文件 C:\inetpub\wwwroot\w

eb.config (用 IIS 建立的虚拟网站时) 4. 取代的应用配置文件 D:\MyApplication\web.config 5. 取代的子目录配置文件 D:\MyApplication\MyDir\we

b.config

Page 25: 第 7 章   Web 应用配置

7.3.2 Web.Config 配置 由于每个 ASP.NET 应用程序都从根 Web.co

nfig 文件继承默认配置设置,因此只需为重写默认设置的设置创建 Web.config 文件。

Web 配置文件是一份 XML 文件,在 XML 标记的属性就是设定值,标记名称和属性值格式是字符串,第 1 个开头字母是小写,之后每一字头是大写,例如 < mobileControls > 。

Page 26: 第 7 章   Web 应用配置

7.3.2 Web.Config 配置 通过设置访问连接配置的 Web 配置文

件示例如书上 168 页至 173 页所示。其中包含: <configuration> 、 <configSections> 、 <appSettings> 、<compilation> 、 <customErrors> 、等的具体设置

Page 27: 第 7 章   Web 应用配置

7.4 Web.Config 配置实例

实例 1 : 用于在登录时验证用户的 Forms 身份验证凭据可以存储在外部数据源中,也可以存储在应用程序的配置文件中。在此我们用一个应用程序的例子 ex2 来说明 Web.config 的配置文件的使用。

具体如书上 173 页至 175 页所示

Page 28: 第 7 章   Web 应用配置

7.4 Web.Config 配置实例 实例 2 : ASP.NET 2.0 提供了一个图形化的工具,让开发人员修改很多可以手动输入到 Web.config 中的设置。

可以通过 ASP.NET 网站管理工具修改设置来编辑 Web.config 文件。具体如书上 175 页至 176 页所示

Page 29: 第 7 章   Web 应用配置

本 章 小 结 ASP .NET 拥有一个功能强大而又设置灵活的配置系统。本章主要介绍应用程序配置的基本概念、 Global.asax 文件的配置、Web.config 配置文件的格式以及配置节的语法。掌握配置文件将会对自己以后的程序设计具有较大的帮助。