新执行后,ConfigurationManager不会刷新AppSettings

时间:2014-06-03 08:38:15

标签: c# asp.net configuration

在我的Web应用程序(c#+ asp.net)中,当我尝试使用" ConfigurationManager"来获取值时,我可以在配置文件(install.properties)上使用我的新值。

String pathJava = ConfigurationManager.AppSettings["FilePathJava"];

我的install.properties

中有这个
<add key="FilePathJava" value="C:\Program Files\Java\jre7\bin\java.exe"></add>

我骑着我可以这样做来刷新值:

ConfigurationManager.RefreshSection("appSettings");

我也这样做了:

ConfigurationManager.OpenMachineConfiguration()

但价值不会改变。

我还尝试添加一个新密钥,但ConfigurationManager返回一个空值。

1 个答案:

答案 0 :(得分:0)

你有潜在的问题......

如果更改Web.config中的任何值,则在网站运行时,它将重置网站。对此文件的任何修改都会导致IIS重置。

在不重置网站的情况下,您想要的解决方案是将应用程序设置完全移出Web.config

 
<?xml version="1.0"?>
<configuration>
   <appSettings configSource="appSettings.config"/>
</configuration>

现在将您的appSettings放在appSettings.config文件中:

<?xml version="1.0"?>
<appSettings>
  <add key="FilePathJava" value="C:\Program Files\Java\jre7\bin\java.exe"/>
</appSettings>

现在,您仍然可以使用ConfigurationManager.AppSettings["FilePathJava"],您的ConfigurationManager.RefreshSection("appSettings")也可以正常使用。