如何创建多个窗口服务实例?

时间:2013-04-03 10:50:12

标签: c# .net vb.net windows-services

我想运行服务器上安装的多个窗口服务实例,而无需再次安装窗口服务。

这怎么可能?

1 个答案:

答案 0 :(得分:4)

服务“安装”实际上只是在名称,可执行文件和一些其他元数据位之间添加映射。安装后的服务要么运行(一次),要么不运行。要让多个实例作为服务运行 ,它们必须使用不同的名称注册,这基本上意味着多次安装它。但是,意味着您需要多个不同的可执行副本。

我这样做的方法是将Installer子类化,使其创建ServiceInstallerServiceProcessInstaller,并提供ServiceName(在运行时,通过自定义安装程序)到ServiceInstaller实例,然后在运行时使用ManagedInstallerClass - 基本上使一个独立的exe能够安装和卸载自己作为服务(你喜欢多次),使用命令行参数指定名。