在运行时设置配置而不重启服务?

时间:2014-05-22 08:59:54

标签: asp.net .net web-services configuration web

创建Web应用程序时,我们会收到一个web.config文件,如果我们编辑此配置文件,webapplication将重新启动。

有一种方法可以在.NET中引用另一个配置文件,但这会解决问题吗?

<appSettings configSource="Config\AppSettings.config"/>
  1. 如果我更改并保存AppSettings.config,服务是否会继续不停地运行?
  2. 我们如何从代码中获取位于AppSEttings.config中的配置?
  3. 如果我们在1秒内在AppSettings.config中找到1000次特定设置后,.NET会每次读取文件还是会使用某种缓存?如果是这样,请监听AppSettings.config文件中的更改以清除此缓存吗?

3 个答案:

答案 0 :(得分:1)

appSettings键支持外部配置的两个属性:file和configSource(inherited)

<appSettings file="AppSettings.config" />
<appSettings configSource="AppSettings.config" />

在这两种情况下,更改外部文件都不会重新启动工作进程,请参阅http://msdn.microsoft.com/en-us/library/ms228154(v=vs.100).aspxhttp://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.configsource.aspx(对于configSource,有一个RestartOnExternalChanges属性会强制重新启动)

Changing AppSetting does not have effect on ApplicationIs web.config or app.config cached in memory

了解详情

要访问设置,请使用

WebConfigurationManager.AppSettings["key_name"]

答案 1 :(得分:0)

1)如果你改变web.config然后服务将重新启动,但如果你以编程方式更改它将不会重新启动,所以你不需要另一个web.config,你可以以编程方式。 2)你可以阅读here 3)缓存,在应用程序启动事件中读取一次

答案 2 :(得分:0)

考虑将(某些)设置存储在数据库中而不是web.config。