Я написал службу Windows, из которой я хочу иметь 1 экземпляр для каждого клиента. Это связано с тем, что у каждого клиента есть своя БД с идентичными схемами; единственная разница между службами Windows заключается в том, что каждый из них будет иметь другой параметр, соответствующий БД клиента, который они предназначены для обслуживания. (И я не могу иметь одну службу с несколькими рабочими потоками, потому что соединение с БД использует статическую переменную, которую я не могу обсуждать с помощью потоков.)
Я нашел этот аккуратный небольшой учебник о том, как сделать службу Windows, но он показывает только, как настроить его для одной службы, Я хочу настроить n экземпляров службы, каждая из которых имеет отображаемое имя, которое включает имя клиента, работающего с параметром командной строки, который обозначает идентификатор клиента.
В приведенном выше учебном руководстве есть класс под названием MyWindowsServiceInstaller
, который устанавливает службу Windows в локальной системе, и я предполагаю, что это было бы логичным местом для создания цикла foreach
для всех моих клиентов, установки по одному сервису для каждого. Но я не вижу нигде на интерфейсах, которые позволили бы мне настроить параметр командной строки для новой службы.
Как вы это делаете?