2

我需要创建许多 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

除了直接编辑注册表之外,我找不到其他方法。

4

2 回答 2

4

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

sc.exe create WcfService1 binPath= "MyService.exe /run WcfService1.dll"

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

于 2011-01-17T08:04:09.423 回答
0

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

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

于 2011-01-13T16:45:06.040 回答