C# Зарегистрируйте одну и ту же службу Windows с разными параметрами

StackOverflow https://stackoverflow.com/questions/4682494

Вопрос

Мне нужно создать множество сервисов Windows для размещения множества услуг WCF, чтобы я мог остановить один (например, для его обновления) и сохранить другую работу.

Поскольку я не хочу создавать службу Windows для каждой услуги WCF, который у меня есть, я пытаюсь создать приложение 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

Я не могу найти способ сделать это, кроме редактирования прямого реестра.

Это было полезно?

Решение

Я нашел более приятный способ сделать это: sc.exe

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

Поэтому мне просто нужно создать летучую мышь/CMD, чтобы запустить эту команду.

Другие советы

По своей природе, сервис предназначен для того, чтобы быть процессом для работы с определенной вещью, и наличие нескольких экземпляров, как правило, не является хорошей идеей. Тем не менее, можно сделать то, что вы хотите; Например, вы можете иметь несколько экземпляров SQL Server, работающего за один раз.

Прочитать это. Анкет По сути, вашему установщику услуг может быть предоставлен какой-то командная строка или другой настраиваемый аргумент, который сообщит ему имя, на которое он должен зарегистрироваться в Windows в качестве услуги. Обычно это автоматическое, основываясь на свойствах Service Installer и Service Executive, но все это также может быть установлено динамически. Измените имя, и вы измените регистрацию услуг. Имя Сервиса должно быть (AFAIK), осматриваемое исполняемой, запускаемым в качестве службы, что может сказать ему услугу WCF, за которую он несет ответственность.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top