我有一个我正在创建的Windows服务,我想知道有哪些选项可供开发人员配置服务。
该服务是整个大型开源项目的一部分,因此该服务将安装在许多不同的机器上。
正常我会使用web / app.config,但我不确定这是否可行。
因此,我希望其他人如何处理这种情况。
答案 0 :(得分:6)
你按照预期行事。您使用app.config,该项目在构建项目时将重命名为<exeName>.config
,然后<exeName>.config
将被名为<exeName>
的服务读取。
设置以分层方式应用,可能来自计算机上的其他配置文件,例如machine.config。您可以阅读how configuration is handled on MSDN
修改强>
响应评论:服务只会在启动时读取配置(出于性能原因)。如果您想稍后重新加载配置文件,您需要自己处理。
您可以读取配置文件的上次修改日期/时间以确定文件是否已更改,或者设置file system watcher然后告诉配置管理器下次再次重新加载该部分时,通过调用ConfigurationManager.RefreshSection("appSettings")
,当您下次访问该部分时,该部分将从磁盘重新加载。请参阅ConfigurationManager MSDN docs
答案 1 :(得分:4)
您可以使用与作为服务的exe同名的.config文件。
如果您的服务作为MyService.exe运行,它的配置文件将是MyService.exe.config。
在Visual Studio中,只需添加应用程序配置文件即可。这会将app.config文件添加到项目中。
然后,您可以使用ConfigurationManager类访问AppSettings和ConnectionStrings等内容,就像使用ASP.Net应用程序一样。