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.
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
- WPF: dal DataBinding ai Template - Seconda parte
- BookStore Pubs 2.1
- #941 - Gestire al meglio gli eventi RowCommand di GridView e ItemCommand di DetailsView e FormsView con la classe DataControlCommands
- #916 - Utilizzare il ControlState di ASP.NET 2.0
- Modificare i CSS Friendly Control Adapters
- #927 - Un HttpModule per passare automaticamente da HTTP a HTTPS
- #954 - Impostare a runtime la query di selezione con SqlDataSource
- ASP.NET 3.5 Extensions: MVC, history e Dynamic Data Controls
- Velocity: ADO.NET Distributed Cache
- Introduzione ad ASP.NET 3.5: novità e caratteristiche
- Realizzare un controllo custom in ASP.NET AJAX - Prima parte
- #915 - Costruire custom control per ASP.NET con supporto per i template
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Difficoltà
Utilità
Contenuti
Stampa
Download


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!