我的要求是在应用程序启动时在运行时更新appsettings文件。但是遇到了一个问题,即使用新的appsettings每分钟都会更换web配置。我怎么能停止每分钟更换?
我在这里已经完成了不同的解决方案并实现如下:
appSettings file="C:\Config\MyProj\Appsettings.Config"
public void ChangeAppSettings(string path) { System.Configuration.Configuration configuration = null; if (System.Web.HttpContext.Current != null) { configuration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~"); } else { configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); } // 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"); }
或者有更好的实施方式吗?
答案 0 :(得分:0)
以下代码完成了诀窍,因为每次我们刷新配置时都会调用一些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");
}