Вы не должны опрашивать эти серверы "по требованию". Было бы лучше использовать ASP.NET для отображения списка информации о сервере и какой-либо другой процесс - например, службу Windows или запланированное задание - каждые несколько минут опрашивать серверы для создания этого списка. Подводя итог: служба создаст файл XML (например), а ASP.NET отобразит его пользователям. Таким образом, количество пользователей, просматривающих страницу, не влияет на количество попыток опроса серверов.
Обновление
Вам необходимо убедиться, что процесс эхо-тестирования серверов является одноэлементным. В частности, синглтон - это класс, в котором может существовать только один экземпляр. В более общем плане для вашего случая вам нужно установить глобальный флаг, который говорит, что «я в данный момент проверяю серверы», и другое глобальное значение даты и времени, которое говорит «в последний раз, когда я пинговал серверы, был чч: мм: сс» - вы может использовать словарь приложения для хранения логического флага и даты и времени. Каждый раз, когда кто-то загружает вашу страницу, проверяйте флаг, чтобы увидеть, проверяет ли он уже серверы. Если это так, не делай этого. Если флаг говорит «хорошо», проверьте текущее время в последний раз, когда вы это сделали. Если это менее 5 минут, не делайте этого. Все это должно быть сделано в фоновом потоке. Этот поток должен обновить XML-файл в App_Data. Все запросы к вашим страницам должны отображать эти данные немедленно. Запрос страницы никогда не должен блокироваться. Если файл отсутствует при первом вызове, верните сообщение «выполняется пинг, повторите попытку через 5 минут». Следуйте
Читайте о словаре состояния приложения ASP.NET здесь:
http://msdn.microsoft.com/en-us/library/ie/ms178594.aspx