我听说能够在生产环境中更改配置值而不回收应用程序池是个好主意。
但是,更改会触及web.config并导致此<无论如何 。 *
如果无法避免应用程序池回收,通过以编程方式存储appSettings,是否会降低灵活性或降低稳健性?
例如在伪代码中:
Application_Start() {
AppSettingHelper.EmailOnException = ConfigurationManager.AppSettings[key];
}
然后,我使用: AppSettingHelper.EmailOnException
答案 0 :(得分:3)
Web.config
仅用于设计时。如果您的应用程序在运行时更改了它的设置,您应该真的考虑将这些设置存储在其他位置,例如在数据库中。
更改web.config文件将导致应用程序重新编译,您将丢失所有静态变量值和其他内容。这也会导致用户暂时延迟。您还必须管理文件的并发更新。
当您以某种方式更改web.config
文件时,更改应用程序源代码。
请查看此主题以了解存储用户设置的可能性:What is the best way to store user settings for a .NET application?。