Windows Service .NET中有哪些不同的配置文件?

时间:2010-01-28 15:20:05

标签: .net windows-services

当我创建.NET Windows服务时,有一个App.config文件。编译服务时,它会在bin目录中创建ServiceName.exe.config,并且还有ServiceName.vshosts.exe.config

Q1)多个配置文件有什么意义?

当我更改App.config中的设置时,直到我卸载服务,重新编译并重新安装服务才会生效。我尝试在App.config以及ServiceName.exe.config中进行设置更改,但没有运气。

Q2)我的理解是,配置文件可以更轻松地进行设置更改,而无需重新部署服务。

感谢任何回复

4 个答案:

答案 0 :(得分:2)

App.config用作模板,以便在不存在时创建<service>.exe.config<service>.vshost.exe.config。如果确实存在,那么当您重新编译时,visual studio不会覆盖它。如果需要,可以通过在vstudio中更改app.config的属性来告诉vstudio覆盖它。

在调试期间使用

<service>.vshost.exe.config(除非您另有说明)。

当您没有运行调试器时,将使用

<service>.exe.config

您进行更改的位置取决于您希望更改所反映的环境。

答案 1 :(得分:1)

App.config如果是设计时间。真正的 .config 将由编译器放在bin\Release\bin\Debug中,具体取决于您使用的构建模式。

使用 sc.exe InstallUtil.exe 安装服务时,这些工具希望您将所有服务文件放在安装目录中(主要目录)您传递给这些工具的可执行文件)。

在构建Windows服务项目之前,对App.config的任何更改都不会反映在<servicename>.exe.config中。如果您需要为您的服务创建安装程序,安装项目应该自动处理这些事情,但经常会混淆这个和其他事情。因此,如果您需要安装程序,请使用http://installer.codeeffects.com或类似的服务。我不知道任何免费的安装程序构建服务,但这个是新的,相对便宜。

答案 2 :(得分:0)

一个用于在Visual Studio内部进行调试,另一个用于实际服务。

必须将配置文件部署到Windows系统目录,并重新启动服务以获取更改。

答案 3 :(得分:0)

您可以在此网址上获得更多详细信息 - &gt; http://blogs.msdn.com/dtemp/archive/2004/08/17/215764.aspx