Webconfig每分钟自动替换一次
本文关键字:一次 替换 每分钟 Webconfig | 更新日期: 2023-09-27 18:12:14
我的要求是在运行时启动应用程序时更新appsettings文件。但是遇到了一个问题,web配置每分钟都被新的应用程序所取代。我怎样才能停止每分钟更换一次呢?
我在这里经历了不同的解决方案,并实现如下:
- 在web配置中,我们有appsettings的默认路径:
- 在Global.asax.cs中,我调用了下面的方法来动态地替换我的appsettings文件。<>之前ChangeAppSettings(字符串路径){System.Configuration.Configuration configuration = null;如果(System.Web.HttpContext。当前!= null){配置=System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");}其他的{配置=ConfigurationManager.OpenExeConfiguration (ConfigurationUserLevel.None);}//更新appconfig文件路径configuration.AppSettings.File = path;//保存配置文件。configuration.Save (ConfigurationSaveMode.Modified);//强制在内存中重新加载已更改的section。ConfigurationManager.RefreshSection("appSettings");}之前
还是有更好的实现方式?
下面的代码做到了这一点,由于某种原因,每次刷新配置时都会调用ChangeAppSettings方法。所以我只是添加了检查配置是否已经修改,然后不再刷新。
if (!path.Equals(configuration.AppSettings.File))
{
// update appconfig file path
configuration.AppSettings.File = path;
// Save the configuration file.
configuration.Save(ConfigurationSaveMode.Modified);
// Force a reload in memory of the changed section.
ConfigurationManager.RefreshSection("appSettings");
}