TopShelf在同一台机器上安装多个相同的服务
问题描述:
我想使用TopShelf创建Windows服务。一切正常,服务的一个实例。但是,当我将整个服务文件夹复制到其他位置,然后在该位置运行安装时,它只会挂在“启动”上。TopShelf在同一台机器上安装多个相同的服务
我根据config文件中的值分配servicename,description,displayaname,所以没有命名冲突。
答
这是服务的instancename
,你需要区分。
service.exe [动词] [ - 选项:值] [-switch]
安装安装服务
-instance一个实例名称如果多次注册服务
所以,你可以使用:
service.exe install -instance:FirstInstanceOfMyService
service.exe install -instance:SecondInstanceOfMyService
答
如果你想要的是在配置文件中设置服务实例的名称,你可以通过编程设置实例名称如下:
var instanceName = ConfigurationManager.AppSettings["Instance"];
HostFactory.Run(hostConfigurator =>
{
...
hostConfigurator.SetDisplayName("My service");
hostConfigurator.SetDescription("My service that does something");
hostConfigurator.SetServiceName("MyService");
hostConfigurator.SetInstanceName(instanceName);
}
所以,在你只能运行安装
MyService.exe install
快来加入邮件列表,如果可以的话,包括日志输出。 https://groups.google.com/forum/#!forum/topshelf-discuss。这将很难在SO中找到;但是,您可以设置“实例”名称,以允许您运行两个相同的服务。 – Travis 2012-08-02 13:54:27
你确定servicename和displayname是唯一的吗?试图用独特的服务名称安装两个服务,但使用相同的显示名称,它没有工作。 – Bomberlt 2014-09-04 07:03:29