Pregunta

Quiero crear una pequeña aplicación de Windows que irá automáticamente cada vez a mi sitio y comprobaré si funciona bien, si no funciona o si tiene un error '' Ejemplos: 404, error de red, conexión a db fallido " mostrará un mensaje en mi pantalla.

¿Cómo puedo saber que hay un error al usar cualquier lenguaje .NET mediante programación?

¿Fue útil?

Solución

Es bastante fácil de hacer con un WebClient . Se vería algo como esto:

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

Puedes conectarlo a un evento Timer del Tick o algo para hacer el chequeo periódicamente.

Otros consejos

¿Por qué molestarse? Puede obtener una solución mucho mejor a bajo costo de un proveedor como RedAlert

Lo bueno de esto es:

1) Prueba su sitio desde fuera de su firewall, para que pueda detectar una variedad más amplia de problemas.

2) Es una tercera parte imparcial, por lo que puede demostrar el tiempo de actividad si necesita un SLA.

3) Por una pequeña prima, puede hacer una prueba y diagnosticar los problemas.

4) Puede enviar una página o enviarle un correo electrónico cuando hay un problema.

5) No es necesario poner en servicio un nuevo servidor.

Caray, sueno como un anuncio para los muchachos, pero prometo que no trabajo para ellos ni me dan un contragolpe. Acabo de estar contento con el servicio para nuestros servidores.

BTW: verifiqué los precios y es de aproximadamente $ 20 por sitio / mes. Por lo tanto, es probable que pueda pagar por un año de servicio en menos tiempo del que tardará en construirlo usted mismo.

Queriendo realizar la misma funcionalidad, primero busqué en soluciones de terceros. Un servicio particular que es gratuito y ha sido bastante preciso es MonitorUs .

Sin embargo, si desea construir el suyo propio, tendría una recomendación. Considere utilizar una solicitud de Head en lugar de una solicitud de obtención:

  

El método HEAD es idéntico a GET   excepto que el servidor NO DEBE regresar   un cuerpo de mensaje en la respuesta. los   metainformación contenida en el HTTP   encabezados en respuesta a una solicitud HEAD   DEBE ser idéntico a la información   enviado en respuesta a una solicitud GET.   Este método puede usarse para obtener   metainformación sobre la entidad   implícita en la solicitud sin   transfiriendo la entidad-cuerpo mismo.   Este método se usa a menudo para probar   enlaces de hipertexto para la validez,   accesibilidad y reciente   modificación. w3.org

Aquí está un enlace al artículo de Peter Bromberg que explica cómo realizar una solicitud de Head en C #.

Utilice el objeto System.Net.WebClient. Es más fácil de usar que HttpWebRequest. Tiene una " DownloadString " Método que descargará el contenido de una URL en una cadena. Ese método también puede generar un error de WebException si el servidor devuelve 500. Para otros errores, puede analizar la cadena y buscar palabras clave.

Use HttpWebRequest y envuélvalo en un retén de prueba para WebException. El código de error en el objeto de excepción le dará el código. 404, etc. Si es 500, puede imprimir el mensaje.

Si hace esto, cree una página especial que ejecute cualquier subsistema especial, como la base de datos, el archivo IO, etc., y muestre los resultados en texto sin formato, no en html. Esto le permitirá analizar los datos devueltos más fácilmente, y también detectará problemas como DB o IO que pueden no darle un error HTTP 404 o 500.

Pruebe el Administrador de aplicaciones de Adventnet ( http://www.manageengine.com/products/applications_manager/ ), es gratis para 5 monitores y proporciona excelentes capacidades de monitoreo

Puede configurar las acciones que se pueden realizar en caso de un error como enviar un correo electrónico, etc.

Si prefiere recibir correos electrónicos / SMS cuando sus sitios están inactivos, intente ¿Mis sitios suben? solución basada en web.

scroll top