You have heard of writers block, well I have coding block. I am 90% completed with my next version of IISMonitor – a program what will provide real-time IIS information for multiple IIS web servers. It will consist of a webservice to be installed on each machine to be monitored, and then a central monitor server that will combine all information in a usable and reportable format. The idea being you can monitor the usage of your remote IIS machines from one location.
I have the basic functionality done, from the webservices, to the monitor interface. However, I am now struggling with the authentication for the webservice on each IIS node. Since I am calling system resources the performance monitor, my web service fails out. Due to authentication, the IIS_USR account does not have appropriate rights to read the perf counters. I can go down the route of impersonation of a user, but that would require creating a user on each machine. So at the moment I am stuck.
I chose this method of webservice delivery because of the small amount of data that needed to be transferred. I could have used the master server to remotely connect to each IIS server and return remote performance counter info. My issue with this method was the use of more network resources and amount of latency delivered when connecting to more than 3 machines.
So I am going to put a few days of rest in between myself and this project before trying to find a solution.