5

我有一个正在创建的 Windows 服务,我想知道有哪些可用选项可以让开发人员配置该服务。

该服务是一个更大的开源项目的一部分,因此该服务将安装在许多不同的机器上。

正常我会为此使用 web/app.config,但我不确定这是否可行。

因此,我期待其他人如何处理此案。

4

2 回答 2

6

你做你所期望的。您使用 app.config,它将<exeName>.config在项目构建时重命名,然后<exeName>.config将由名为<exeName>.

设置以分层方式应用,可能来自机器上的其他配置文件,例如 machine.config。您可以阅读有关如何在 MSDN 上处理配置的信息

编辑

回应评论:服务只会在启动时读取配置(出于性能原因)。如果您想稍后重新加载配置文件,我认为您需要自己处理。

您可以读取配置文件的最后修改日期/时间以确定文件是否已更改,或者设置文件系统观察程序ConfigurationManager.RefreshSection("appSettings"),然后通过调用和该部分告诉配置管理器在下次读取该部分时再次重新加载该 部分下次访问时将从磁盘重新加载。请参阅ConfigurationManager MSDN 文档

于 2012-04-25T10:59:00.080 回答
4

您可以只使用与作为服务的 exe 同名的 .config 文件。

如果您的服务作为 MyService.exe 运行,它的配置文件将是 MyService.exe.config。

在 Visual Studio 中,只需添加一个应用程序配置文件。这会将 app.config 文件添加到项目中。

然后,您可以使用 ConfigurationManager 类访问 AppSettings 和 ConnectionStrings 等内容,就像使用 ASP.Net 应用程序一样。

于 2012-04-25T10:59:58.277 回答