150 likes | 269 Views
第五章 应用程序配置. 知识点:. Global.asax Global.asax 的文件格式 Web.Config Web.config 的文件格式. 5.1 理解 Global.asax. 5.1.1 Global.asax
E N D
知识点: • Global.asax • Global.asax的文件格式 • Web.Config • Web.config的文件格式
5.1 理解Global.asax 5.1.1 Global.asax Global.asax文件位于ASP.NET应用程序的根目录下,被称为ASP.NET应用程序文件,Asp.net通过一个动态的.NET FrameWork 类自动解析和编译这个文件,这个类就是HttpApplication基类,在第一时间里面,在这个文件里面的应用程序的资源将会被响应,使你可以编写全局的应用程序代码。共提供了7个事件,5个应用于Application对象,2个应用于Session对象。分别是:
5.1.2 Global.asax的文件格式 • 模版 <%@ [Directive][attribute]=[value]%> <Script runat="server"> //Application对象事件代码 </Script> • 如果事件处理代码需要导入附加的命名空间,可以在 .aspx 页中使用 @ import 指令,如下所示: <%@ Import Namespace="System.Web.UI" %>
利用Global.asax实现网页浏览计数。 <script language="C#" runat=server> void Application_Start(object sender, EventArgs e) { Application.Lock(); Application.Add("count",0); Application.UnLock(); } void Application_End(Object sender, EventArgs e){ Application["count"]=(int)Application["count"]-1; } void Session_Start(object sender, EventArgs e) { Application["count"]=(int)Application["count"]+1; } void Session_End(Object sender, EventArgs e){ //销毁会话资源 } </script>
5.2 web.config 5.2.1 配置文件 在ASP.NET中的配置系统是一个分层配置结构,这使得能够在整个应用程序、站点或计算机中定义和使用可扩展的配置数据。它具有以下优点: • 永远不会被锁定:web.config设置可以被随时更新,ASP.NET将平稳地转换到一个新的应用程序域。 • 便于访问和复制:能够很方便地管理远程计算机上的某个web.config文件。还可以复制web.config文件或利用它把同样的设置应用于另一个应用程序或者某个web域内的同一个应用程序。 • 易于编辑和理解:web.config文件基于XML的文本文件,其设置易于阅读,可以使用任何文本编辑工具来编辑。
5.2.2 web.config文件格式 配置文件基于XML的文本文件,可出现在ASP.NET web应用程序服务器上的任何目录中。每个web.config文件将配置设置应用到它所在的目录和它下面的所有虚拟子目录。 Web.config文件基于XML的文本文件,文件的编码格式可以为ANSI、UTF-8、Unicode。所有配置都被嵌套在<configuration>根元素中,标记间的配置信息分为两个主区域:配置节处理程序声明区域和配置节设置区域。
配置节处理程序声明出现在配置文件顶部的<configSections> 和</configSections>标记之间。包含在 <section>标记中的每个声明都指定提供特定配置数据集的节的名称和处理该节中配置数据的 .NET Framework 类的名称。 • 配置节设置区域位于<configSections>之后,这部分包含实际的配置设置。<configSections>区域中的每个声明都有一个配置节。每个配置节都包含子标记,这些子标记带有包含该节设置的属性。 • 配置设置在节分组标记下经常嵌套在一起。这些顶级节标记通常表示配置设置应用到的命名空间。
web.config文件的一些重要的配置段。 <?xml version="1.0" encoding="utf-8"?> <configuartion> <system.web> <httpRuntime /> <pages /> <compilation /> <customErrors /> <authentication /> <authorization /> <identity /> <trace /> <sessionState /> <httpHandlers /> <httpModules /> <globalization /> </system.web> </configuration>
5.2.3 在web.config中保存设置 • 可以把定制的配置信息添加到<appSettings>元素中。<appSettings>嵌到在<configuration>中,而不是在<system.web>元素中。 <?xml version="1.0" encoding="utf-8"?> <configuartion> <appSettings> <!—定制配置--> </appSettings> <system.web> <!-- ASP.NET 类的设置--> </system.web> </configuration>
要加入定制的配置,可用一个<add>元素指定一个唯一的变量名(key)和相应的变量内容(value)。如下例:要加入定制的配置,可用一个<add>元素指定一个唯一的变量名(key)和相应的变量内容(value)。如下例: <?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <!--***************** 数据库的设置 ***************** !— SCDataCode: 数据库操作引擎授权码(自动判断域名) !— SCDataLink: 数据库链接参数(自动判断类型) !— Access类型: \安装目录\库名.mdb !— SQL Server类型: uid=用户名;pwd=密码;database=数据库;server=(local) **************************************************--> <add key="SCDataCode" value="00000000-00000000"/> <add key="SCDataLink" value="uid=sa;pwd=;database=Temp;server=(local);"/> <!--***********************************************--> </appSettings> <system.web> <!--配置设置代码--> </system.web> </configuration>
可以利用System.Configuration.ConfigurationSettings类通过关键字(key)名访问这些设置。这个类提供一个叫做AppSettings的共享属性,如下所示。可以利用System.Configuration.ConfigurationSettings类通过关键字(key)名访问这些设置。这个类提供一个叫做AppSettings的共享属性,如下所示。 public void DbOperate() { conn = System.Configuration.ConfigurationSettings.AppSettings["SCDataLink"].ToString(); … }
5.3 实战检验 • 理论巩固 • 请说明Global.asax的作用。 • 请说明Global.asax提供几种事件,分别完成什么功能。 • 请理解Global.asax的文件格式。 • 请说明web.config的作用。 • 请理解web.config的文件格式。 • 上机实战 • 请利用Global.asax实现网站计数器的功能。 • 请在web.config中加入配置数据库连接的功能。