我们最近使用appSettings'file'属性将大部分web.config设置分解为一个单独的配置文件。
在Web.config中:
<appSettings file="Configurations/app.config" />
在app.config中:
<appSettings>
<add key="mySetting" value="true"/>
</appsettings>
在代码中:
var mySetting = System.Web.Configuration.WebConfigurationManager.AppSettings["mySetting"];
由于某种原因,这改变了更改值时的行为。当所有内容都位于Web.config文件本身的appSettings部分中时,在应用程序运行时进行的更改立即生效。现在,我们必须重置应用程序/ iis才能查看app.config中的更改。
我环顾四周,找不到任何文档来描述这种行为变化,介于将所有内容都保存在web.config中和将file
属性与单独的文件一起使用。其他人建议在访问代码中的每个设置之前使用RefreshSection()方法,但是我不喜欢在不必要的情况下必须这样做的想法。
为什么会这样?我可以对配置进行更改以立即在此单独的文件中进行配置更改吗?