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