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

.net 如果更改app.config,是否必须重新启动windows服务?,.net,windows-services,.net,Windows Services,如果更改app.config,是否必须重新启动windows服务?: .Net framework将读取app.config一次,并且不再触摸app.config。这就是为什么您必须重新启动应用程序以获取更改 为什么.Net framework没有检测到app.config已更改,并刷新所有配置数据 原因很简单,这在一般情况下是不可能的 让我们用雷蒙德的“想象一下这是可以做到的”逻辑 对 您可能是指appname.exe.config文件?不,您不必这样做。但是如果您想让app.config中的

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

.Net framework将读取app.config一次,并且不再触摸app.config。这就是为什么您必须重新启动应用程序以获取更改

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

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

让我们用雷蒙德的“想象一下这是可以做到的”逻辑


您可能是指appname.exe.config文件?

不,您不必这样做。但是如果您想让
app.config
中的更改生效,您可能需要重新启动它。或者,您可能希望实现一个自定义配置文件监视机制,该机制将动态更改服务的设置。

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


最好编写自己的配置节处理程序,该处理程序监视自己的配置文件-方法。检查“自动重新配置”部分通常是。但是,您可以编写一个windows服务,在配置文件上放置一个文件监视器,感知修改并应用它,而无需重新启动


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

我以前使用过这种机制。本质上,这会在检索值之前重新加载指定的部分。很可能比按需刷新的配置文件监视程序效率低,但使用时一定要小心

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

“如果你想让app.config中的更改生效,”-我认为这是问题中隐含的!太好了,就在我没有橡胶鸡的时候。不,你不必了。Ref link No:如果使用configuration Manager编写代码以再次读取设置。是:如果它没有额外的逻辑,你必须重新启动服务。这是一个伟大的发现!