290 likes | 517 Views
第 7 章 Web 应用配置. 教学提示: ASP.NET 提供了一个丰富的应用配置系统,以此建立所需要的 WEB 应用环境。帮助 Web 应用、站点、机器分别配置自己的扩展配置数据等。在 ASP.NET 应用项目中可以有一个名为 Global.asax 的文件。它主要负责一些高级别的应用程序事件,与 ASP.NET 的应用程序配置信息保存文件 Web.Config. 7.1 Web 应用系统概述.
E N D
第7章 Web应用配置 • 教学提示:ASP.NET提供了一个丰富的应用配置系统,以此建立所需要的WEB应用环境。帮助Web应用、站点、机器分别配置自己的扩展配置数据等。在ASP.NET应用项目中可以有一个名为Global.asax的文件。它主要负责一些高级别的应用程序事件,与ASP.NET的应用程序配置信息保存文件Web.Config
7.1 Web应用系统概述 • Web应用系统的组件除了网页文件之外,ASP.NET 2.0同其他ASP.NET站点一样都是使用两个文件保存用于整个站点的配置信息和代码,这两个文件分别是Web.config和Global.asax。Web.config包含站点的配置信息;例如,指定一个定制的标准错误页面,当站点内发生错误时,向终端用户显示这个页面。Global.asax包含处理事件的代码,这些事件由站点的任意页面产生;例如,当用户第一次访问站点时运行的代码(会话初始化)。
7.2 Global.asax • ASP .NET应用程序被定义为可以从Web应用程序服务器上虚拟目录及其目录中调用的所有文件、页、处理程序、模块和可执行代码的总和。在每一个ASP .NET应用程序里都包含一个名为Global.asax的文件。它主要负责一些高级别的应用程序事件,例如应用程序的开始和结束、会话状态的开始和结束等。
7.2 Global.asax • Global.asax文件是一个可选文件,用户可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容不是给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象。该文件的名称必须是Global.asax且必须存放在应用程序的根目录中。每个应用程序只能有一个Global.asax文件。
7.2.1 Global.asax运行特点 • Global.asax文件类似于ASP中的Global.asa文件,不过Global.asax支持更多的事件,除了支持Application_OnStart、Application_OnEnd、Session_OnStart与Session_OnEnd等事件外,Global.asax还支持Application_BeginRequest、Application_EndRequest等。从概念上来说,这两者是非常类似的。当位于应用程序命令命名空间的任何资源或者URL被首次访问时,ASP.NET系统将自动解析Global.asax文件并把它编译为动态的.NET框架类——此类派生HttpApplication 基类并加以扩充
7.2.1 Global.asax运行特点 • Global.asax文件是一个可选文件,用户可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。如果不对它进行定义的话,则系统默认为用户未定义任何程序或会话事件处理程序。一般来说,如果用户不需要编写任何应用程序或者会话事件处理程序的话,可以选择不要Global.asax文件。
7.2.1 Global.asax运行特点 • Glabal.asax文件是经过设置的。任何关于该文件的直接URL请求都将被拒绝,所以外部的用户无法下载及查看其内容。当改变Glabal.asax文件的时候,.NET Framework框架可以自动识别出这种变化。此时它会完成应用程序的所有当前的请求,重新启动应用程序。
7.2.2 Global.asax的配置 • Global.asax 文件是 ASP.NET 应用程序的中心点。它提供无数的事件来处理不同的应用程序级任务,比如用户身份验证、应用程序启动以及处理用户会话等。你应该熟悉这个可选文件,这样就可以构建出健壮的ASP.NET 应用程序。
7.2. Global.asax的配置实例 • 在此用一个统计在线人数的简单例子说明Global.asax的使用。 • 创建新网站 • 启动VS2005并单击“文件” →“新建网站”,选择文件系统名为“ex1”,单击“确定”生成只有一个default主页的网站。 • 在主页中添加事件代码 • 在“解决方案资源管理器”中双击“Ddefault.aspx.cs”项,在打开的代码Page_Load事件中输入: • Response.Write("您的SessionID是" + Session.SessionID); • 其中SessionID是浏览器与服务器会话的唯一标识符,即不同的用户成员其SessionI是不同的。
7.2. Global.asax的配置实例 • 创建Global.asax文件 • 我们注意到刚新建的网站并没有Global.asax,现在创建Global.asax文件。单击“文件”→“新建文件”命令,打开“添加新项”对话框,如书164页图7-1、图7-2。并按书上要求输入相应的代码,就可以创建一个统计在线人数的程序
7.3 Web.Config • 开发人员经常需要在网站的各个页面上都存储一些全局性的信息。理想的做法是将这些信息集中存储在资料库中,而不是在网站的每个页面上都重复这样的操作,比如说,数据库连接串就是这样的信息。如果这些信息不是集中存储在特定区域中,而是在网站的每个需要连接数据库的页面上手工输入,这样当数据库连接串需要改动时将会很麻烦,就必须遍历网站中所有连接数据库的页面去修改。由此就引出了应用程序配置的概念
7.3 Web.Config • 我们已经知道对ASP.NET应用程序配置进行设置的一种方法是使用Global.asax文件。另一种为ASP.NET应用程序创建配置文件的方法是通过对Web.config的设置。 • 使用 ASP.NET 配置系统的功能,可以配置整个服务器上的所有 ASP.NET 应用程序、单个 ASP.NET 应用程序、各个页面或应用程序子目录。可以配置各种功能,如身份验证模式、页缓存、编译器选项、自定义错误、调试和跟踪选项等等。
7.3 Web.Config • 一般在开发完Web应用程序后,都需要在服务器上部署该应用程序。部署应用程序的过程是一个安装程序和配置程序的过程。ASP.NET站点配置的过程是一个编写配置代码的过程,这些配置信息都是保存在Web.config的文件中。开发人员可以按照网络和服务器的特点以及自身的需求完成配置程序的开发,并且在需要的时候比较灵活地改变这些设置。
7.3.1 Web.Config运行特点 • 任何一个服务器配置系统都是一个丰富而复杂的系统,ASP.NET提供了一个层次配置架构及一套配置对象模型以帮助WEB应用、站点、机器分别配置自己的扩展配置数据,以此提高系统配置管理的操作简便性。 • ASP.NET允许配置内容可以和静态内容、动态页面、程序代码和组件放置在同一应用的目录结构下。当管理人员需要安装新的ASP.NET应用时,只需要将应用目录拷贝到新的机器上即可。
7.3.1 Web.Config运行特点 • ASP.NET提供了扩展配置内容的架构,是开放的、可扩充的,可以存放自己定义的信息,以支持第三方开发者配置自己的内容。 • ASP.NET可以自动监测到配置文件的更改并且将新的配置信息自动进行应用,无须管理人员手工干预。 • ASP.NET提供了一套完整的API,便于在程序里调用这些信息并修改配置,利用这套机制同样可以修改远程的计算机配置。
7.3.1 Web.Config运行特点 • ASP.NET提供配置信息加密机制,即可对重要信息进行加密。 • ASP.NET提供了专门用可视化工具对网站进行配置的管理模式。 • ASP.NET配置系统的关键文件Web.config与Global.asax文件不同,这两者有很大的区别,Global.asax中包含的是代码,而Web.config中包含的是值。
7.3.1 Web.Config运行特点 • Web.config文件是一个基于XML格式的配置文件,所以必须在其中包含成对的标记,即开始标记与结束标记必须成对出现,而且是区分大小写的,编辑Web.config文件时需特别注意。开发人员可以用任意标准的文本编辑器、XML解析器和脚本语言解释、修改配置内容。由于XML特点,Web.config文件非常容易被开发者阅读及被程序识别和应用
7.3.1 Web.Config运行特点 • Web.config文件可将配置的有关设置保存在该文件中而不对注册表作任何改动,所以只需将Web.config文件拷贝到另一服务器相应的文件夹中就可以方便地把该应用配置传到另一服务器之中。
7.3.2 Web.Config 配置 • Web 配置文件web.config位于 Web 应用程序的任何目录中,子目录如果没有 web.config 文件,就是继承父目录 web.config 文件的相关设定;如果子目录有 web.config 文件,就会覆盖父目录 web.config 文件的相关设定。
7.3.2 Web.Config 配置 • ASP.NET 配置层次结构具有下列特征: • 使用应用于配置文件所在的目录及其所有子目录中的资源的配置文件。 • 允许您将配置数据放在将使它具有适当范围(整台计算机、所有的 Web 应用程序、单个应用程序或该应用程序中的子目录)的位置。
7.3.2 Web.Config 配置 • 允许重写从配置层次结构中的较高级别继承的配置设置。还允许锁定配置设置,以防止它们被较低级别的配置设置所重写。 • 将配置设置的逻辑组组织成节的形式。 • 配置级别为“服务器”的文件名为“Machine.config”,它包含服务器上所有 Web 应用程序的 ASP.NET 架构。此文件位于配置合并层次结构的顶层。
7.3.2 Web.Config 配置 • 配置级别为“根Web”的文件名为“Web.config”,它与 Machine.config 文件存储在同一个目录<systemroot>\Microsoft.NET\Framework\<versionNumber>\CONFIG中,它包含大部分 system.web 配置节的默认值。运行时,此文件是从配置层次结构中的从上往下数第二层合并的。
7.3.2 Web.Config 配置 • 配置级别为“网站”等的文件名都同上一样为“Web.config”,它包含应用于该网站的设置,并向下继承到该站点的所有 ASP.NET 应用程序和子目录。 • 配置级别为“客户端应用程序目录”的文件名为“ApplicationName.config”,它包含Windows 客户端应用程序(而非 Web 应用程序)的设置。
7.3.2 Web.Config 配置 • 在运行asp.net的时候,多个配置文件需要按照一定顺序调用,其调用次序示例如下: • 1. 机器的基本配置文件C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config • 2. Web服务器的根配置文件C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\web.config • 3. Web应用程序的根配置文件C:\inetpub\wwwroot\web.config (用IIS建立的虚拟网站时) • 4. 取代的应用配置文件D:\MyApplication\web.config • 5. 取代的子目录配置文件D:\MyApplication\MyDir\web.config
7.3.2 Web.Config 配置 • 由于每个 ASP.NET 应用程序都从根 Web.config 文件继承默认配置设置,因此只需为重写默认设置的设置创建 Web.config 文件。 • Web 配置文件是一份 XML 文件,在 XML 标记的属性就是设定值,标记名称和属性值格式是字符串,第 1 个开头字母是小写,之后每一字头是大写,例如< mobileControls >。
7.3.2 Web.Config 配置 • 通过设置访问连接配置的Web配置文件示例如书上168页至173页所示。其中包含:<configuration>、<configSections> 、<appSettings>、<compilation>、<customErrors> 、等的具体设置
7.4 Web.Config 配置实例 • 实例1: • 用于在登录时验证用户的 Forms 身份验证凭据可以存储在外部数据源中,也可以存储在应用程序的配置文件中。在此我们用一个应用程序的例子ex2来说明Web.config的配置文件的使用。 • 具体如书上173页至175页所示
7.4 Web.Config 配置实例 • 实例2: • ASP.NET 2.0提供了一个图形化的工具,让开发人员修改很多可以手动输入到Web.config中的设置。 • 可以通过ASP.NET 网站管理工具修改设置来编辑Web.config文件。具体如书上175页至176页所示
本 章 小 结 • ASP .NET拥有一个功能强大而又设置灵活的配置系统。本章主要介绍应用程序配置的基本概念、Global.asax文件的配置、Web.config配置文件的格式以及配置节的语法。掌握配置文件将会对自己以后的程序设计具有较大的帮助。