Установка нескольких версий службы Windows на одном компьютере - PullRequest
1 голос
/ 01 декабря 2010

У меня есть .NET 3.5 Windows Service, которая поставляется в нескольких различных конфигурациях / вариантах, т.е. Выпуск, тестирование, отладка и т. Д. Я создал пакет установщика для службы, который создается как часть сценария msbuild, но мне нужно иметь возможность создавать установщики таким образом, чтобы каждый вид службы мог установлен на той же машине. Кто-нибудь знает лучший способ сделать это?

Спасибо

Ответы [ 2 ]

2 голосов
/ 21 января 2011

Просто хотел обратить внимание на комментарии в статье Cody Grey ссылки.Похоже, что автор и комментатор согласились с тем, что был более простой способ использования sc.exe:

sc \\myserver create NewService binpath= c:\nt\system32\NewServ.exe
2 голосов
/ 01 декабря 2010

Возможно эта статья поможет?

Проблема

При просмотре ServiceInstaller класс с использованием Reflector, вы увидите это Win32 вызывает CreateService в метод ServiceInstaller.Install. CreateService вернет ERROR_DUPLICATE_SERVICE_NAME возврат код всякий раз, когда метод вызывается с serviceName или displayName параметр, соответствующий параметру уже установлен сервис. Это что заставляет Win32Exception быть бросить в вышеупомянутом окне и в конечном итоге вызывает вторую установку терпеть неудачу. Вы можете просмотреть полный документация по CreateService функция здесь .

Чтобы обойти это, все что нужно быть сделано, чтобы динамически установить название сервиса во время установки и запуск службы с известным значением и чтобы убедиться, что значение отличается для каждого экземпляра услуги, которую вы установка.

Решение

Все, что нужно сделать, это сделать уверен, что название каждого сервиса экземпляр установки уникален. затем вам нужно иметь копии каталоги установки для каждого экземпляр службы вы хотели бы иметь. Наконец, вы должны быть в состоянии установить имя службы динамически во время установка и запуск. Это будет облегчено использование файла app.config .

Статья продолжается предоставлением пошаговых инструкций о том, как можно установить несколько экземпляров .NET Windows Service на одном компьютере.

Конечно, я не могу не задаться вопросом , почему именно вам понадобится одновременно запускать версию Debug и Release на одной и той же машине.

...