ASP.NET中配置文件web.config的优先级

web.config是ASP.NET的默认配置文件名,一般来说每个ASP.NET站点的根目录都会有一个web.config,因为在VS里面建立站点的时候会一同生成的。其实在一个站点的不同的目录中可以各自有各自的web.config文件,如果一个站点中的不同的目录都有web.config,那么他们之间的关系是什么?哪个web.config的优先级会高呢?顺序如下:
(1) 如果在当前页面所在目录下存在web.config 文件,查看是否存在所要查找的结点名称,如果存在返回结果并停止查找。
(2) 如果当前页面所在目录下不存在web.config 文件或者web.config 文件中不存在该结点名,则查找它的上级目录,直到网站的根目录。

(3) 如果网站根目录下不存在web.config 文件或者web.config 文件中不存在该节点名则在%windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config 文件中查找。
(4) 如果在%windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config 文件中不存在相应结点,则在%windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG \machine.config 文件中查找。
(5) 如果仍然没有找到则返回null 。
由此可见,站点中某个文件夹里面的web.config文件的内容可以覆盖掉站点根目录的web.config,如果在开发或者测试的过程中需要对站点的某个部分的配置进行修改,可以根据这个优先级,用子目录下的配置文件覆盖站点根目录配置文件。

Leave a Reply

Your email address will not be published. Required fields are marked *