IIS环境下的智慧web.config 的覆盖策略详解
1. Web.Config的基本概念和作用
Web.Config 是一个XML文件,用来储存ASP.NET Web应用程序的配置信息,包括数据库连接字符、身份安全验证等。它可以出现在ASP.NET Web应用程序服务器上的任何目录中,每个Web.config 将配置设置应用到它所在的目录及虚拟子目录下。子目录中的设置可以随意重写或修改在父目录中指定的设置。
2. Web.Config的继承层次
在IIS环境中,Web.Config的配置信息是有继承层次的。具体来说,有以下几个层次:
- machine.config :在ASP.NET中,很多的默认的配置都是定义在这个配置文件中的,但是有一些配置已经从machine.config 中移出到别的地方了,为了缩短ASP.NET的加载时间。我们知道在运行一个ASP.NET程序的时候,ASP.NET运行时是要加载很多的配置文件的,当然machine.config 是一定要加载的,但是其中有些配置不是必须的,所以就移到别的地方,如果用到就加载。
- 安装根目录中的web.config :在%windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG中的配置文件,之前说过machine.config 把很多的配置移出了,就放在这个配置中。
- 网站根目录中的web.config :我们也可以把web.config 放在根目录中,让它对整个根目录起作用。如:c:\inetpub\wwwroot。因为我们可以新建很多的虚拟目录文件夹,文件夹中有网站程序,如果把配置文件放在虚拟目录中,那么配置就对整个文件夹中的网站起作用。
- 一个网站中的web.config :这是我们最常见的配置地方。
- 网站中的某个文件夹中的web.config :我们常常通过这个配置文件来限制对文件的访问权限。
3. Web.Config的覆盖策略
在IIS环境中,可以通过在相应的文件夹下创建一个web.config 文件来覆盖掉上级文件夹中的web.config 文件中的同名配置。这些配置信息的寻找只查找一次,以后便缓存起来供以后调用。在ASP.NET应用程序运行过程中,如果web.config 文件发生更改就会导致相应的应用程序重新启动,这时存储在服务器内存中的用户会话信息就会丢失(如存储在内存中的Session)。。
4. Web.Config的结构和配置节
Web.Config文件是按照XML的格式定义的,所以必须严格遵守XML格式。所有配置信息都驻留在configuration和/configuration根XML标记之间。标记间的配置信息分为两个主区域:配置节处理程序声明区域和配置节设置区域。配置节处理程序声明出现在配置文件顶部configSections和/configSections标记之间,配置节声明使用section节,如:配置节也支持嵌套,外层的配置节使用sectionGroup,内层的使用section。
5. Web.Config的实际应用场景
Web.Config文件可以用于设置应用程序的身份验证策略,例如Windows身份验证、Forms身份验证等。
6. Web.Config的安全性和管理
因为IIS7采用了更安全的web.config 管理机制,默认情况下会锁住配置项不允许更改。需要解锁才能进行修改。
以上就是IIS环境下的Web.Config的相关知识,希望对你有所帮助。
原创文章,作者:Ur47000,如若转载,请注明出处:https://wyc.retuba.cn/5197.html