3

我知道这可能是重复的,但是到目前为止所有的帖子都无法解决我的问题。

我有一个 Windows 服务,我希望这个服务从 web.config 中读取。但是,它一直从 machine.config 中读取。我已经尝试了许多来自包括 SO 在内的许多网站的设置建议,例如<appSettings file="location of web.config".

每次更改 app.config 后是否需要重新安装?我在 service.exe 所在的文件夹中有 service.exe.config。还有什么我可能错过的?

另请注意,我在 IIS 中有 2 个网站。如何确保窗口服务采用我想要的 web.config?

这里有一些代码来展示我是如何做到的:

private string uDir = ConfigurationManager.AppSettings["dir1"] + "\\dir1";
private string fDir= ConfigurationManager.AppSettings["dir2"] + "\\dir2";
private static string cs= ConfigurationManager.ConnectionStrings["cSqlServer"].ConnectionString.ToString();
private SqlConnection con = null;

所有 ConfigurationManager 都没有返回任何内容,除了 ConnectionStrings 从 machine.config 返回值。

4

1 回答 1

1

尝试在服务上重新运行Installutil工具。

除非您的服务定期检查 app.exe.config 文件中的更改,否则在重新安装服务之前它不会重新加载配置文件。

如果您替换安装位置中已安装的 app.exe.config 文件并重新启动服务,它也应该会选择新版本。

于 2013-03-22T08:16:57.733 回答