WebConfig.config 常用配置节点介绍

一、配置文件入门

.Net提供了一种保存项目配置信息的办法,就是利用配置文件,配置文件的后缀一般是.config。在WinForm程序中配置文件一般是App.config。在asp.net中一般默认是web.config。

一个.config配置文件都是基于XML的文本文件,并且可以保存到Web应用程序中的任何目录中。在发布Web应用程序时web.config文件并不编译进dll文件中。将来如果客户端发生了变化,仅仅需要使用记事本打开Web.config文本编辑相关的设置就可以重新正常使用,而无需重新编译程序。

1、配置文件的查找

我们先从配置文件的查找方式来了解配置文件。

.net 提供了一个针对当前机器的配置文件,这个文件是 machine.config,它位于 %windir%\Microsoft.NETFramework\v2.0.50727\CONFIG 文件下。这个文件里面定义了针对当前及其的 WinForm 程序和 asp.net 应用程序的配置。

machine.config 在我的电脑的路径是 C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config,由于里面的内容比较多,而且看不懂,所以贴出来也没有什么用了。

在同样的文件夹下还有一个web.config文件,这个文件包含了asp.net网站的常用配置。asp.net网站IIS启动的时候会加载配置文件中的配置信息,然后缓存这些信息,这样就不必每次去读取配置信息。在运行过程中asp.net应用程序会监视配置文件的变化情况,一旦编辑了这些配置信息,就会重新读取这些配置信息并缓存。

当我们要读取某个节点或者节点组信息时,是按照以下方式搜索的:

  1. 如果在当前页面所在的目录下存在web.config文件,查看是否存在所要查找的节点名称,如果存在返回结果并停止查找;
  2. 如果当前页面所在目录下不存在web.config文件或者web.config文件中不存在该节点名,则查找它的上级目录,直到网站的根目录;
  3. 如果网站根目录下不存在web.config文件或者web.config文件中不存在该节点名则在 C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\webconfig.config 文件中查找;
  4. 如果在 C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\webconfig.config 文件中不存在响应的节点则在  C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config 中查找;
  5. 如果仍然没有找到则返回null。
当前页面所在目录的 web.config
上级目录直至根目录的 web.config
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\webconfig.config
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config

所以如果我们对某个网站或者某个文件夹有特定要求的配置,可以在相应的文件夹下创建一个web.config文件,覆盖掉上级文件夹中的web.config文件中的同名配置即可。这些配置信息的寻找只查找一次,所以便缓存起来供后来的调用。在asp.net应用程序运行过程中,如果web.config文件发生更改就会导致相应的应用程序重新启动,这时存储在服务器内存中的用户会话信息就会丢失(如存储在内存中的Session)。一些软件(杀毒软件)每次完成对web.config的访问时就会修改web.config的访问时间属性,也会导致asp.net应用程序的重启。

2、常见的配置节点及读取

web.config文件是一个XML文件,它的根节点是<configuration>,在<configuration>节点下的常见子节点有:<configSections>、<appSettings>、<connectionStrings>和<system.web>。

其中<appSettings>节点主要用于配置一些网站的应用配置信息。

而<connectionStrings>节点主要用于配置网站的数据库连接字符串信息。

<system.web>节点主要是网站运行时的一些配置,它的常见节点有下面这些……

未完,待续…

作者: Hugh

Welcome to Wan's world~