使用外部配置文件进行.NET Windows服务

时间:2010-10-18 10:56:51

标签: c# .net configuration windows-services app-config

我有一个用于Windows服务的app.config文件,其中包括数据库连接字符串和appsettings。当我安装Windows服务时,它安装在“C:\ program files \”文件夹中,并将设置复制到同一文件夹中名为“.exe.config”的文件中,这样就很难在其后更改设置部署到测试环境。我可以将所有设置存储在共享网络驱动器上某处的外部文件中,而不是存储服务的同一文件夹中吗?那可能吗?我能想到的唯一选择是创建一个xml文件并使用.NET XML API读取它,另一个问题是我需要注意文件中的更改并重新加载服务中的设置。

3 个答案:

答案 0 :(得分:2)

Linq to XML使得读取外部设置文件变得相当容易。您还可以使用FileSystemWatcher监视设置文件中的更改。

答案 1 :(得分:2)

您可以从核心配置文件中推出一些配置设置,例如:

<connectionStrings configSource="connectionStrings.config" />

<?xml version="1.0" encoding="UTF-8"?>
<connectionStrings>

</connectionString>

这样,只要您不部署connectionStrings.config文件,就可以安全地部署应用程序并单独维护这些设置。关于这种方法的好处是,您不需要创建一个获取配置数据的全新方法,这是内置于配置系统中的,只需阅读这些设置当前的操作方式。

答案 2 :(得分:0)