Monitoraggio dei siti web con ASP.NET

2 pagine in totale: [1] 2 Avanti >>

Quanti siti gestite? 10, 100? Sapete sempre se i server sono in funzione o se ci sono dei problemi? Usate qualche programma esterno che vi serve per monitorare lo stato dei siti che gestite, per sapere se e quando un sito ha dei problemi ed intervenire tempestivamente?

Stanco delle solite soluzioni, prima di tutto perché mi trovo spesso a cambiare postazione di lavoro e poi perchè non mi piace installare programmi su PC non miei, avevo bisogno di qualcosa di semplice e personalizzabile, indipendente dalla postazione che mi permettesse di monitorare i miei siti web... La soluzione per me è stata semplicemente creare una pagina ASP.NET utile allo scopo!

La soluzione che viene proposta in questo articolo è semplice, facilmente espandibile, utilizza la classe System.Net e tramite una tecnica di screen scraping permette di caricare una pagina da un URL e mostrare a video se la pagina è stata ricevuta correttamente (e quindi il sito è funzionante) oppure se si sono verificati dei problemi.

File di configurazione

Innanzitutto creiamo un file XML (chiamiamolo server.xml) che contiene l'elenco dei siti o delle pagine da monitorare; ciascuna voce dell'elenco va inclusa all'interno della coppia di tag <server></server>. Aggiungiamo per ciascun tag <server> l'attributo check="yes" per indicare quali siti verificare (in questo modo è possibile escludere alcuni siti dal monitoraggio agendo semplicemente sul file XML). Ecco il risultato:

 <?xml version="1.0" encoding="utf-8" ?>
<root>
    <server check="yes">http://www.aspitalia.com</server>
    <server>http://www.questononlocontrollo.it</server>
    <server check="yes">http://falsositodiprova.xx</server>
</root>

Lettura del file di configurazione

Prima di iniziare, onde evitare problemi con la compilazione, bisogna ricordarsi di referenziare questi namespace e includerli all'inizio del Code-Behind della pagina:

 using System.Net;
using System.Xml;
using System.Text;

A questo punto inseriamo qualche riga di codice nel Page_Load per caricare i dati contenuti nel file XML in un controllo CheckListBox presente nella pagina ASPX (è l'unico controllo che ci servirà):

 string myXmlFile = Server.MapPath("server.xml");
XmlTextReader myXml = new XmlTextReader(myXmlFile);

Iniziamo a leggere il file XML attraverso un oggetto XmlTextReader e aggiungiamo ogni nodo di tipo XmlNodeType.Element di nome "server" al controllo CheckListBox. Inoltre per ogni elemento con attributo check="yes" marchiamo la casella di spunta relativa.

 while(myXml.Read())
{
    if ((myXml.NodeType == XmlNodeType.Element) && (myXml.Name == "server"))
    {
        string myCheck = myXml.GetAttribute("check");
        myUrl = myXml.ReadString();
        chkSite.Items.Add(new ListItem(myUrl, myUrl));
        if (myCheck == "yes")
        chkSite.Items[chkSite.Items.Count-1].Selected = true;
    }
}
myXml.Close();

Quest'ultima istruzione (quella di chiusura) è fondamentale: omettendola, il file XML risulterebbe sempre bloccato e non saremmo in grado di modificarlo mentre l'applicazione è in esecuzione.

2 pagine in totale: [1] 2 Avanti >>

Attenzione: Questo articolo contiene un allegato

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.


TUTORIALS
TOP TEN ARTICOLI
NOTIFICHE

Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

Indirizzo e-mail:
PROVIDER ASP.NET 2.0

Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



IN EVIDENZA
MISC