Welcome 微信登录

首页 / 网页编程 / ASP.NET / asp.net夜话之十一:web.config详解(一)

asp.net夜话之十一:web.config详解(一)2011-03-05 csdn博客 周金桥在开发中经常会遇到这样的情况,在部署程序时为了保密起见并不将源代码随项目一同发布,而我们开发时的环境与部署环境可能不一致(比如数据库不一样),如果在代码中保存这些配置这些信息部署时需要到用户那里更改代码再重新编译,这种部署方式非常麻烦。

在.net中提供了一种便捷的保存项目配置信息的办法,那就是利用配置文件,配置文件的文件后缀一般是.config,在asp.net中配置文件名一般默认是web.config。每个web.config文件都是基于XML的文本文件,并且可以保存到Web应用程序中的任何目录中。在发布Web应用程序时web.config文件并不编译进dll文件中。如果将来客户端发生了变化,仅仅需要用记事本打开web.config文件编辑相关设置就可以重新正常使用,非常方便。

本篇要讲述的知识如下:

配置文件的查找优先级

配置文件节点说明

配置文件的操作

配置文件的查找优先级

在.net提供了一个针对当前机器的配置文件,这个文件是machine.config,它位于%windir%Microsoft.NETFrameworkv2.0.50727CONFIG文件下(%windir%是系统分区下的系统目录,在命令行模式下输入%windir%然后回车就能查看当前机器的系统目录,在Windows2003及WindowsXP中%windir%是系统分区下的windows目录,在Windows2000中%windir%是系统分区下的WinNT目录,在笔者机器上这个系统目录是C:WINDOWS)。这个文件里面定义了针对当前机器的WinForm程序和asp.net应用程序的配置。下面是machine.config文件的内容:

在这个文件夹下还有一个web.config文件,这个文件包含了asp.net网站的常用配置。下面是这个web.config文件的内容:

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

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

(1)如果在当前页面所在目录下存在web.config文件,查看是否存在所要查找的结点名称,如果存在返回结果并停止查找。

(2)如果当前页面所在目录下不存在web.config文件或者web.config文件中不存在该结点名,则查找它的上级目录,直到网站的根目录。

(3)如果网站根目录下不存在web.config文件或者web.config文件中不存在该节点名则在%windir%Microsoft.NETFrameworkv2.0.50727CONFIGweb.config文件中查找。

(4)如果在%windir%Microsoft.NETFrameworkv2.0.50727CONFIGweb.config文件中不存在相应结点,则在%windir%Microsoft.NETFrameworkv2.0.50727CONFIGmachine.config文件中查找。

(5)如果仍然没有找到则返回null。