在我正在 ASP.Net 上开发的应用程序之一中。在此应用程序中,我们使用了大量的 AppSettings。在最初的开发中我们使用了ConfigurationManager.AppSettings[""]。但随着开发的进展,我们创建了一个实用程序类,在其中为每个 AppSettings 定义一个静态属性。然后问题开始出现。现在,当应用程序部署在测试服务器上并且我们更改 AppSettings 上的任何设置时,除非重新启动 IIS,否则它不会产生任何效果。这是我用来创建 AppSettings 的静态属性的以下代码片段。
public static class AppSettingsUtil
{
public static string Log4Net
{
get
{
return ConfigurationManager.AppSettings["Log4Net"];
}
}
}
我能想到的原因之一是,它是一个静态属性,因此它可能在其生命周期内初始化一次,因此下次以后它可能不会从 appsettings 中获取值。
我知道这是一个旧线程,但需要添加一些内容。
如果您使用:
<appSettings file="AppSettings.config" />
然后,在更改 web.config 或执行重新启动之前,对外部文件的更改将不可用。
但如果你把它改成:
<appSettings configSource="AppSettings.config" />
对这些设置的更改可立即在您的代码中使用,无需重新启动或更改 web.config。
我刚刚通过可重复的测试验证了这种情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)