Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何创建Windows服务的多个实例?_.net_Windows Services - Fatal编程技术网

.net 如何创建Windows服务的多个实例?

.net 如何创建Windows服务的多个实例?,.net,windows-services,.net,Windows Services,我想运行服务器上安装的Windows服务的多个实例,而无需再次安装 这怎么可能呢?服务“安装”实际上只是在名称、可执行文件和其他一些元数据之间添加一个映射。服务一旦安装,要么运行(一次),要么不运行。要让多个实例作为服务运行,它们必须用不同的名称注册,这基本上意味着要安装多次。但是,这并不意味着您需要可执行文件的多个不同副本 我这样做的方式是对安装程序进行子类化,以便创建服务安装程序和服务流程安装程序,并向服务安装程序实例提供服务名称(在运行时,通过自定义安装程序),然后在运行时使用Manage

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

这怎么可能呢?

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


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

您尝试过什么吗?不可能。您可以创建不同名称的服务(可能使用不同的命令行参数),或者使用单个windows服务生成其他进程,但您无法执行问题中描述的操作—这根本没有意义。请编辑您的问题,以描述问题的背景,以及您希望实现的目标。您可能希望重新考虑这一点,让一个windows服务运行多个线程。我仍然想知道TS为什么要这样做,以及这是否是最好的主意。以下是更多详细信息。有用的东西。你能发布安装程序子类吗?