Frage

Ich möchte eine kleine Windows-Anwendung erstellen wird jedes Mal Zeit, um meine Seite gehen automatisch und überprüfen, ob seine feine ausgeführt wird, wenn es sich heraus nach unten, nicht funktioniert oder ein Fehler „Beispiele haben: 404, Netzwerkfehler, Verbindung db fehlgeschlagen“es eine Nachricht auf meinem Bildschirm angezeigt.

Wie kann ich wissen, dass es ein Fehler ist programmaticly jede .NET-Sprache verwenden?

War es hilfreich?

Lösung

Es ist ziemlich einfach, mit einem WebClient zu tun. Es würde wie folgt aussehen:

    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;
            // ...
        }
    }

Sie können, dass in regelmäßigen Abständen ein Timer der Tick Ereignis oder etwas anschließen, um die Prüfung zu machen.

Andere Tipps

Warum die Mühe? Sie können von einem Anbieter eine viel bessere Lösung für billig wie RedAlert

Das Schöne daran ist:

1) Es prüft Ihre Website von außerhalb der Firewall, so dass es eine größere Vielfalt von Problemen zu erkennen.

2) Es ist eine unparteiische dritte Partei, so dass Sie die Verfügbarkeit unter Beweis stellen können, wenn Sie eine SLA benötigen.

3) Für eine kleine Prämie können Sie die Sache versuchen haben und die Probleme zu diagnostizieren.

4) Es kann Seite oder per E-Mail, die Sie, wenn es ein Problem gibt.

5) Sie brauchen keine neuen Server in Betrieb nehmen.

Meine Güte, ich klinge wie eine Anzeige für die Jungs, aber ich verspreche, dass ich nicht für sie arbeiten oder einen Rückschlag zu erhalten. Ich habe gerade glücklich mit dem Service für unsere Server.

BTW: Ich habe Preise und es ist ungefähr $ 20 pro Seite / Monat. So könnten Sie wahrscheinlich für ein Jahr des Dienstes in weniger Zeit zu bezahlen, als es dauern wird, es selbst zu bauen.

Will die gleiche Funktionalität auszuführen Ich sah in Lösungen von Drittanbietern zuerst. Ein besonderer Service, der kostenlos ist und war ziemlich genau ist MonitorUs .

Wenn aber sind Sie wollen Ihre eigenen bauen, dann würde ich eine Empfehlung haben. Erwägen Sie die Verwendung einer Leiter Anfrage anstelle einer Erhaltungs-Anforderung:

  

Die HEAD-Methode ist identisch mit GET   außer dass der Server nicht zurückgeben muss   ein Nachricht-Körper in der Antwort. Das   Metainformationen im HTTP enthaltenen   Header in Reaktion auf eine HEAD-Anforderung   Sollten auf die Informationen identisch sein   als Antwort auf eine GET-Anforderung gesendet.   Dieses Verfahren kann zur Gewinnung verwendet werden,   Metainformationen über die Entität   durch die Anfrage angedeutet, ohne   Übertragen des Entity-Körper selbst.   Diese Methode wird häufig für den Test verwendet   Hypertext-Links auf ihre Gültigkeit,   Zugänglichkeit und die letzte   Änderung. w3.org

Hier

Mit dem System.Net.WebClient Objekt. Es ist einfacher zu benutzen als ein HttpWebRequest. Es hat eine „DownloadString“ Methode, die den Inhalt einer URL in einen String heruntergeladen. Das Verfahren kann auch einen WebException Fehler auslösen kann, wenn der Server eine 500-Fehler zurückgibt Sie die Zeichenfolge analysieren kann und suchen nach Schlüsselwörtern.

Verwenden Sie HttpWebRequest, und wickeln Sie es in einem Try-Catch für WebException. Der Fehlercode im Ausnahmeobjekt geben Sie den Code. 404, etc. Wenn es 500 ist, können Sie die Nachricht drucken können.

Wenn Sie dies tun, erstellen Sie eine spezielle Seite, die spezielle Subsysteme ausübt, wie die Datenbank, Datei IO, etc, und dient dazu, die Ergebnisse im Klartext auf, nicht html. Dies ermöglicht Ihnen, die zurückgegebenen Daten einfacher zu analysieren, und auch Dinge wie DB oder IO Probleme fangen, die Sie kann einen 404 oder 500 HTTP-Fehler nicht geben.

Versuchen Adventnet Application Manager ( http://www.manageengine.com/products/applications_manager/ ), ist es für 5 Monitore kostenlos und ausgezeichnete Überwachungsfunktionen bietet

Sie können die Aktionen konfigurieren, die im Falle eines Fehlers, wie E-Mail senden usw. durchgeführt werden kann.

Wenn Sie es vorziehen, E-Mail / SMS zu erhalten, wenn Ihre Seiten nach unten sind, versuchen Sie die sind meine Seiten nach oben web-basierte Lösung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top