Monitoraggio dei siti web con ASP.NET

di Maurizio Alberti, in ASP.NET,
  • 0
  • 0
  • 0
  • 18,07 KB

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

Attenzione: Questo articolo contiene un allegato.

Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti