2010-10-08 333 views
11

我有一个在C#中开发的Windows服务应用程序。相同的服务需要使用不同的配置文件运行。要在同一台机器上运行这些服务,我需要更改服务的名称。我可以创建解决方案的多个副本,但不知道如何更改服务的名称。如何更改Windows服务的名称?

感谢

回答

11

在从ServiceBase派生的win服务类中,有一个属性可以继承,您可以将其设置为ServiceName。你可以创建一个app.config,添加一个服务名称的设置,让你的win服务类相应地分配这个属性。这样,只要您更改app.config中的设置,每个服务名称都将是唯一的。

+1

这个例子经过了一些更详细的应用程序需要它:http://www.codeproject.com/Articles/21320/Multiple-Instance-NET-Windows-Service – 2013-03-19 11:37:11

+1

对于Joel的链接,具体如何获得从安装程序中的app.config ServiceName不适用于我(可能过时,因为它是为.NET 2.0编写的),但此解决方案工作正常:http://stackoverflow.com/questions/8516701/how -to-GET-Windows的服务名来自-APP-配置 – 2014-09-15 15:13:43

2

Windows服务的配置都存储在将注册表,在HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \服务...你可能会想改变关键的两个名称(“文件夹” ,并在这里的服务的真实姓名)和值“显示名称”。

use a tool like SC.EXE to configure services这可能会更好,以避免导致注册表编辑不当的问题。虽然SC不能重命名服务,但它确实允许您删除和创建服务(只需确保所有设置都正确!)。

+0

对不起,如果我的问题有点混乱......我想改变解决方案本身的服务名称。如何做呢? – Prady 2010-10-08 03:23:04

2

服务名称也可以通过ProjectInstaller设计模式进行编辑。在ServiceInstaller中有一个名为ServiceName的属性。

相关问题