【问题标题】:How to create multiple instance of Windows Service?如何创建多个 Windows 服务实例?
【发布时间】:2013-04-03 10:50:12
【问题描述】:

我想在不重新安装的情况下运行安装在服务器上的 Windows 服务的多个实例。

这怎么可能?

【问题讨论】:

  • 你试过了吗?
  • 不可能。您可以创建不同命名的服务(可能使用不同的命令行参数),或者拥有一个生成其他进程的 Windows 服务,但您不能执行您在问题中描述的内容 - 这没有任何意义。请您编辑您的问题来描述您的问题的背景,以及您希望达到的具体目标吗?
  • 您可能需要重新考虑这一点,并拥有一个运行多个线程的 Windows 服务。

标签: .net windows-services


【解决方案1】:

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

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

【讨论】:

猜你喜欢
  • 2020-02-16
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 2014-10-12
  • 1970-01-01
  • 2011-08-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多