如果更改app.config,是否必须重新启动Windows服务?

时间:2009-02-26 14:33:01

标签: .net windows-services

如果更改app.config,是否必须重新启动Windows服务?

6 个答案:

答案 0 :(得分:31)

Yes, you do

  

.Net框架将读取app.config一次,再也不会触摸app.config。这就是为什么你必须重新启动应用程序以获取更改。

     

为什么.Net框架没有检测到app.config已经更改,并刷新所有配置数据?

     

原因很简单,一般情况下这是不可能的。

     

让我们在这里使用雷蒙德的“想象这可以完成”的逻辑......

答案 1 :(得分:10)

我之前用过这个。本质上,这会在检索值之前重新加载指定的部分。可能效率低于按需刷新的配置文件观察器,但确实有效使用。

  ConfigurationManager.RefreshSection("appSettings")
  sValue = ConfigurationManager.AppSettings(name)

答案 2 :(得分:8)

不,你没有拥有。但是,如果您希望app.config中的更改生效,则可能需要重新启动它。或者您可能希望实现一个自定义配置文件观察器机制,它可以动态改变服务的设置。

答案 3 :(得分:4)

大概是指appname.exe.config文件?

答案 4 :(得分:2)

通常是的。但是,您可以编写一个Windows服务,将文件监视器放在配置文件上并检测修改并应用它而无需重新启动。

例如,Log4Net日志记录框架为其配置文件提供了这样的机制。

答案 5 :(得分:1)

这超出了问题的范围,但我猜你只想在一些“特定于应用程序”的部分(appSettings等)中进行更改。

你最好编写自己的配置节处理程序,它监视它自己的配置文件 - 方法nlog uses。请查看“自动重新配置”部分。