【发布时间】:2009-02-26 14:33:01
【问题描述】:
修改app.config是否需要重启windows服务?
【问题讨论】:
-
不,您不必这样做。参考链接msdn.microsoft.com/en-us/library/…
-
否:如果您编写了代码以使用配置管理器再次从设置中读取。是:如果没有附加逻辑,则必须重启服务。
标签: .net windows-services
修改app.config是否需要重启windows服务?
【问题讨论】:
标签: .net windows-services
.Net 框架会读取 app.config 一次,并且永远不会再接触 app.config。这就是为什么您必须重新启动应用程序才能获取更改的原因。
.Net 框架为什么没有检测到 app.config 已更改,并刷新所有配置数据?
原因很简单,一般情况下这是不可能的。
让我们在这里使用雷蒙德的“想象这可以做到”的逻辑......
【讨论】:
我以前用过这个。本质上,这会在检索值之前重新加载指定的部分。可能比按需刷新的配置文件观察器效率低,但谨慎使用肯定有效。
ConfigurationManager.RefreshSection("appSettings")
sValue = ConfigurationManager.AppSettings(name)
【讨论】:
不,你没有有。但如果您想让app.config 中的更改生效,您可能需要重新启动它。或者您可能希望实现一个自定义配置文件观察器机制,该机制将动态更改服务的设置。
【讨论】:
是的。
大概你的意思是 appname.exe.config 文件?
【讨论】:
通常是的。但是,您可以编写一个 Windows 服务,将文件监视器放在配置文件上并感知修改并应用它而无需重新启动。
例如,Log4Net 日志框架为其配置文件提供了这种机制。
【讨论】:
这超出了问题的范围,但我猜您只想在某些“特定于应用程序”的部分(appSettings 等)中进行更改。
您最好编写自己的配置节处理程序,它监控自己的配置文件 - 方法 nlog uses。检查“自动重新配置”部分。
【讨论】: