更新Windows服务的配置值,无需重启

时间:2017-01-10 06:58:31

标签: c# config

我的Windows服务没有从配置文件中读取更新值。

我们有一个abc.exe.config的示例文件。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="MySolution.Shared.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <appSettings>
    <add key="Dummy" value="dummyValue"/>
  </appSettings>
  <applicationSettings>
     <MySolution.Shared.Properties.Settings>
      <setting name="SiteFilter_Allowed" serializeAs="String">
        <value>HIT124</value>
      </setting>
    </MySolution.Shared.Properties.Settings>
   </applicationSettings>
</configuration>

现在我必须更新 SiteFilter_Allowed 属性的值。 手动我在abc.exe.config中将SiteFilter_Allowed的值更新为HIT123。 在申请中,在阅读上述属性之前,我写道:

ConfigurationManager.RefreshSection(@"applicationSettings\MySolution.Shared.Properties.Settings");

但是没有反映更新的值,即应用程序仍然使用缓存值。

我试过appSetting它工作正常。

ConfigurationManager.RefreshSection("appSettings);

我也尝试了

ConfigurationManager.RefreshSection("MySolution.Shared.Properties.Settings");

我也尝试过:

 var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).Save(ConfigurationSaveMode.Modified);
    ConfigurationManager.RefreshSection(@"applicationSettings\MySolution.Shared.Properties.Settings");

我也尝试过:

ConfigurationManager.RefreshSection("applicationSettings);

以上组合均无效。

0 个答案:

没有答案