webconfig每分钟自动更换一次

时间:2016-10-08 19:01:17

标签: c# .net asp.net-mvc web-config app-config

我的要求是在应用程序启动时在运行时更新appsettings文件。但是遇到了一个问题,即使用新的appsettings每分钟都会更换web配置。我怎么能停止每分钟更换?

我在这里已经完成了不同的解决方案并实现如下:

  1. 在网络配置中,我们有appsettings的默认路径:
  2.  appSettings file="C:\Config\MyProj\Appsettings.Config" 
    1. 在Global.asax.cs中,我调用以下方法动态替换我的appsettings文件。
    2. 
          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");
          }
      

      或者有更好的实施方式吗?

1 个答案:

答案 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");

}