Domanda

Voglio creare una piccola applicazione Windows che andrà automaticamente ogni volta sul mio sito e verificherò che funzioni correttamente, se la trova inattiva, non funziona o ha un errore " Esempi: 404, errore di rete, connessione a db fallito " mostrerà un messaggio sul mio schermo.

Come faccio a sapere se esiste un errore a livello di programmazione utilizzando un linguaggio .NET?

È stato utile?

Soluzione

È abbastanza facile da fare con un WebClient . Sarebbe simile a questo:

    WebClient client = new WebClient();
    try
    {
        string response =
            client.DownloadString("http://www.example.com/tester.cgi");

        // We at least got the file back from the server

        // You could optionally look at the contents of the file
        // for additional error indicators      
        if (response.Contains("ERROR: Something"))
        {
            // Handle
        }
    }
    catch (WebException ex)
    {
        // We couldn't get the file.
        // ... handle, depending on the ex
        //
        // For example, by looking at ex.Status:
        switch (ex.Status)
        {
            case WebExceptionStatus.NameResolutionFailure:
                // ...
            break;
            // ...
        }
    }

Puoi collegarlo all'evento Tick di Timer o qualcosa per effettuare periodicamente il controllo.

Altri suggerimenti

Perché preoccuparsi? Puoi ottenere una soluzione molto migliore a basso costo da un fornitore come RedAlert

La cosa bella di questo è:

1) Verifica il tuo sito dall'esterno del firewall, in modo da rilevare una più ampia varietà di problemi.

2) Si tratta di una terza parte imparziale in modo da poter dimostrare il tempo di attività se è necessario per uno SLA.

3) Per un piccolo premio puoi provare a diagnosticare i problemi.

4) Può effettuare una pagina o inviare un'e-mail in caso di problemi.

5) Non è necessario commissionare un nuovo server.

Accidenti, sembro una pubblicità per i ragazzi, ma prometto di non lavorare per loro o di ottenere un contraccolpo. Sono appena stato contento del servizio per i nostri server.

A proposito: ho controllato i prezzi ed è di circa $ 20 per sito / mese. Quindi potresti probabilmente pagare per un anno di servizio in meno tempo di quanto ci vorrà per costruirlo da solo.

Volendo eseguire la stessa funzionalità ho prima cercato soluzioni di terze parti. Un servizio particolare che è gratuito ed è stato abbastanza accurato è MonitorUs .

Se, tuttavia, vuoi costruirne uno tuo, avrei una raccomandazione. Prendi in considerazione l'utilizzo di una richiesta Head invece di una richiesta get:

  

Il metodo HEAD è identico a GET   tranne che il server NON DEVE tornare   un corpo di messaggio nella risposta. Il   metainformazione contenuta nell'HTTP   intestazioni in risposta a una richiesta HEAD   DOVREBBE essere identico alle informazioni   inviato in risposta a una richiesta GET.   Questo metodo può essere utilizzato per ottenere   metainformazione sull'entità   implicito dalla richiesta senza   trasferire l'entità-corpo stesso.   Questo metodo viene spesso utilizzato per i test   collegamenti ipertestuali per validità,   accessibilità e recenti   modifica. w3.org

Ecco un collegamento all'articolo di Peter Bromberg che spiega come eseguire una richiesta Head in C #.

Utilizza l'oggetto System.Net.WebClient. È più facile da usare rispetto a HttpWebRequest. Ha un " DownloadString " metodo che scaricherà il contenuto di un URL in una stringa. Questo metodo può anche generare un errore WebException se il server restituisce un 500. Per altri errori puoi analizzare la stringa e cercare le parole chiave.

Usa HttpWebRequest e racchiudilo in un tentativo di cattura per WebException. Il codice di errore nell'oggetto eccezione ti fornirà il codice. 404, ecc. Se è 500, è possibile stampare il messaggio.

Se lo fai, crea una pagina speciale che esercita eventuali sottosistemi speciali, come la base di dati, il file IO, ecc. e fornisce i risultati in testo semplice, non in html. Ciò ti consentirà di analizzare più facilmente i dati restituiti e di rilevare anche problemi DB o IO che potrebbero non causare un errore HTTP 404 o 500.

Prova il gestore applicazioni di Adventnet ( http://www.manageengine.com/products/applications_manager/ ), è gratuito per 5 monitor e offre eccellenti capacità di monitoraggio

È possibile configurare le azioni che è possibile eseguire in caso di errore come inviare e-mail, ecc.

Se preferisci ricevere e-mail / SMS quando i tuoi siti sono inattivi, prova I miei siti sono attivi soluzione basata sul web.

scroll top