Я работаю над новой системой лицензирования программного обеспечения наших компаний. Мы используем DeployLX для нашего лицензирования и, в целом, он отвечает нашим потребностям.
Одним из вариантов, который мы хотим предоставить, является лицензия на одновременное использование, при которой клиент может установить наше программное обеспечение на сервере, а пользователь использует наши продукты через соединение RDP.
Если они приобрели 10 лицензий, мы разрешим запустить 10 экземпляров нашего программного обеспечения (на сервере)
Мы создали Concurrent Monitor в C # для управления лицензией, и это прекрасно работает, если нам нужно только запустить наше программное обеспечение с 1 сервера.
Однако ряд наших клиентов используют балансировку нагрузки в конфигурациях фермы серверов, поэтому нам необходимо установить монитор конфигурации на одном сервере и наше программное обеспечение на всех других серверах. Эти серверы должны будут подключиться к этому одному серверу, чтобы связаться с Concurrent Monitor и проверить лицензию (которая относится к Concurrent Monitor, а не к нашему программному обеспечению).
Вопросы:
В настоящее время Concurrent Monitor является службой Windows, установленной на сервере (сервер 1). Итак, как мне кодировать контакт для метода в Concurrent Monitor из нашего программного продукта на других серверах (скажем, на серверах 2 и 3)?
Я пытался использовать .NET ServiceController и, хотя я могу подключиться к службе Windows, я не знаю, как (или даже могу ли я) вызвать метод, который я написал в службе?