В Сети полно разных решений для отслеживания доступности сайтов.
Но для проформы (поупражнялся с WPF и многопоточностью) за несколько часов сделал свою утилиту. Что умеет:
- Отслеживает доступность списка сайтов (периодичность настраивается)
- Помимо простого факта доступности учитывает максимальный таймаут ответа и размер контента (учитывается только html-разметка, это всё-таки не браузер).
- Размер оценивает с погрешностью +/- 10%. Небольшие контентные отклонения не дадут ложного извещения, а вот если сайт «упадёт» или будет чем-то резко «надут», появится репорт. Это момент, наверное, самый спорный, но лично мне фича нужна.
- Отправляет извещения по почте о недоступных сайтах, о слишком мелких и слишком больших ответах.
- Логирует все «плохие» статусы и сетевые ошибки (спасибо log4net).
Для работы нужен .NET 3.5. Скачать софтину можно по этой ссылке. Протестировал всё, кроме работы через прокси.
Работает, как простая программа, для работы со списком нужно минимум действий (изменение значение и переход на любой другой элемент — изменения автоматом сохраняются). Ошибки ввода в полях не орут и не раздражают, а просто призывно мигают цветом томата. Проверка всех статусов происходит параллельно, так что определяется всё шустро.
Приложение выдаёт себя за Firefox 3.6 при обращении к серверам. User-Agent можно поменять на какой угодно в .config-файле (мне было откровенно лень добавлять настройку, если кто-нибудь попросит — сделаю). Та же история с текстом мэйла.
Если кто-нибудь (косится на ДСпирета) ещё и иконку сделает, будет супер.
Про WPF — впечатление хорошее. Именно таким должен был быть WinForms.