web.config或app.config是否在内存中缓存

use*_*687 13 asp.net

如果它被缓存,如果我在多级文件夹中使用多个web.config会发生什么

Ode*_*ded 17

他们都被缓存了.

配置在启动时读取一次.使用web.config,IIS监视文件更改并重新启动应用程序.


小智 9

好的,所以你会错过Web.Config文件区域中的KEY功能.

是的,web.config被缓存,更改文件内容将重新启动您的Web应用程序.并且,所有关联用户也不会感到高兴,因为他们需要"重新连接"新的,可能会丢失所需的信息.

因此,为AppSettings使用EXTERNAL自定义文件,如下所示:

<appSettings configSource="MyCustom_AppSettings.config"/>
Run Code Online (Sandbox Code Playgroud)

然后,在文件MyCustom_AppSettings.config文件中,您有自己的设置,因此此示例具有:

<appSettings>

  <!--   AppSecurity Settings   -->
  <add key="AppStatus_Active" value="Active"/>

  <!--   Application Info Settings   -->
  <add key="AppID" value="25"/>
  <add key="AppName" value="MyCoolApp"/>
  <add key="AppVersion" value="20120307_162344"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)

现在,如果你需要添加,更改或删除AppSetting,当你在这个文件中改变它的变化是在你的web应用程序几乎瞬间BUT(和这里是最好的一部分),你的应用程序没有重新启动!

除了您在外部.config文件中添加/修改/删除的设置外,一切都保持犹太.

并且,是的,该部分可以做同样的事情如下:

<connectionStrings configSource="MyCustomApp_ConnectionStrings.config"/>
Run Code Online (Sandbox Code Playgroud)

并且文件MyCustomApp_ConnectionStrings.config包含您需要的所有连接字符串.更改外部.config文件中的连接字符串,它立即开始使用,没有重新启动Web应用程序.

当您需要在不同的盒子上部署开发,测试和生产并需要与给定的盒子/环境相关的设置时,configSource设置非常好.

所以,现在你知道了(已经存在了7年多的事情).

就这么简单.真.

KC