Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.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
C#使用不同参数注册相同的windows服务_C#_Windows Services_Wcf Hosting - Fatal编程技术网

C#使用不同参数注册相同的windows服务

C#使用不同参数注册相同的windows服务,c#,windows-services,wcf-hosting,C#,Windows Services,Wcf Hosting,我需要创建多个windows服务来承载多个WCF服务,这样我就可以停止一个服务(例如更新它),并保持另一个运行 因为我不想为我拥有的每一个WCF服务创建一个windows服务,所以我尝试创建一个C#应用程序,它可以将自己注册为windows服务,但参数不同(当然还有服务名称) 例如,这样称呼它: MyService.exe /install WcfService1.dll MyService.exe /install WcfService2.dll 这将创建两个不同的windows服务,如下所

我需要创建多个windows服务来承载多个WCF服务,这样我就可以停止一个服务(例如更新它),并保持另一个运行

因为我不想为我拥有的每一个WCF服务创建一个windows服务,所以我尝试创建一个C#应用程序,它可以将自己注册为windows服务,但参数不同(当然还有服务名称)

例如,这样称呼它:

MyService.exe /install WcfService1.dll
MyService.exe /install WcfService2.dll
这将创建两个不同的windows服务,如下所示:

WcfService1 -> MyService.exe /run WcfService1.dll
WcfService2 -> MyService.exe /run WcfService2.dll

除了直接编辑注册表之外,我找不到其他方法来实现这一点。

就其性质而言,服务被设计为处理特定事情的直接过程,拥有多个实例通常不是一个好主意。然而,你可以做你想做的事;例如,您可以同时运行多个SQL Server实例


读一读。基本上,您的服务安装程序可以获得一些命令行或其他可配置参数,这些参数将告诉它应该在Windows中将自己注册为服务的名称。这通常是基于服务安装程序和服务可执行文件的属性自动设置的,但所有这些也可以动态设置。更改名称,即更改服务注册。服务的名称应该可以被作为服务运行的可执行文件检查(AFAIK),它可以告诉它它负责的WCF服务。

我找到了一种更好的方法:sc.exe

sc.exe创建WcfService1 binPath=“MyService.exe/run WcfService1.dll”


所以我只需要创建一个bat/cmd来启动这个命令。

我无法理解这个问题,因为我不清楚您的问题是什么。当我读到你的问题时,你已经有了答案!抱歉,我不清楚:我的问题是,我找不到使用C添加带有参数的windows服务的方法#我不明白你的意思:我没有尝试使用不同的参数运行相同的服务,但相同的可执行文件(例如windows使用svchost.exe)。实际上,这将是我自己的WCF托管服务器实现。