I am working on a new licensing system for our companies software. We are using DeployLX for out licensing and generally speaking, it meets our needs. One of the options that we want to provide is a Concurrent License where the client can install our software on a server and the user uses our products via a RDP connection. If they have purchased 10 licenses we will allow for 10 instances of our software to be run (on the server)
We have created a Concurrent Monitor in C# to control the license and this works fine if we only need to run our software off 1 server. However, a number of our clients use load balancing in a server farm configurations, so we need we need to install the Configuration Monitor on one server and our software on all the other servers. These servers will need to connect to this one server to contact the Concurrent Monitor and validate the license (which is held against the Concurrent Monitor, not our software).
Questions:
Currently the Concurrent Monitor is a Windows service installed on a server (server 1). So, how would I code the contact to a method in the Concurrent Monitor from our software product on the other servers (say server 2 and 3)?
I have tried to use the .NET ServiceController and although I can connect to the Windows service, I do not know how (or even if I can) call a method I have written in the service?