我有一个用C#开发的Windows服务应用程序。需要使用不同的配置文件运行相同的服务。要在同一台机器上运行这些,我需要更改服务的名称。我可以创建解决方案的多个副本,但不确定如何更改服务的名称。
由于
答案 0 :(得分:12)
在从ServiceBase
派生的win服务类中,有一个可以继承的属性,可以设置为ServiceName
。您可以创建app.config,添加服务名称的设置,并让您的win服务类相应地分配该属性。这样,只要您更改app.config中的设置,每个服务名称都将是唯一的。
答案 1 :(得分:3)
也可以通过 ProjectInstaller 设计模式编辑服务名称。 ServiceInstaller 中有一个名为 ServiceName 的属性。
答案 2 :(得分:2)
Windows服务的配置存储在注册表中 HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services ... 您可能想要更改密钥的名称(“文件夹”,以及此处服务的真实姓名)和值“显示名称”。
use a tool like SC.EXE to configure services可能更好,以避免导致错误的注册表编辑问题。虽然SC无法重命名服务,但它确实允许您删除和创建服务(只需确保正确设置所有设置!)。