Pregunta

Necesito escribir una aplicación WinForms simple que pueda ser activada para probar si un sitio web sigue vivo y si ese sitio web puede leer desde una base de datos.

Estoy usando todo " (HttpWebResponse) myHttpWebRequest.GetResponse () " en c # para comprobar si el sitio está vivo, pero no sé cómo obtener una página de prueba en mi sitio web para escribir algo en la " Respuesta " para indicar que pudo probar su propia conectividad a la base de datos.

Aquí está el código de muestra para mi lado Winforms (extraído del MSDN):

private void CheckUrl()
{
  try
  {
    HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.google.com");

    HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
    myHttpWebResponse.Close();

    label1.Text = myHttpWebRequest.Address.AbsoluteUri;
  }
  catch (WebException e)
  {
    label1.Text = "This program is expected to throw WebException on successful run." +
                                    "\n\nException Message :" + e.Message;

    if (e.Status == WebExceptionStatus.ProtocolError)
    {
      label1.Text = String.Format("Status Code : {0}", ((HttpWebResponse)e.Response).StatusCode);
      label2.Text =String.Format("Status Description : {0}", ((HttpWebResponse)e.Response).StatusDescription);
    }
  }
  catch (Exception e)
  {
    label1.Text = e.Message;
  }
}

Esperaba ayuda en el lado del formulario web para volver al código anterior.

Gracias por cualquier ayuda que puedan brindar.

  • Richard
¿Fue útil?

Solución

¿Qué sucede cuando su sitio falla? ¿Devuelve un código de estado 500 o tiempo de espera?

Otra forma de verlo: ¿siempre hace algo esperado si tiene éxito?

Puede llamar a una URL en su aplicación web que sabe que devolverá un código de respuesta 200 o tendrá un marcado HTML esperado en la respuesta si las cosas funcionan bien.

Haga que su winform llame a esta URL y examine el Response.status o el texto en el búfer de salida para su marcado esperado. También debe crear un tiempo de espera en su httprequest. Si la página no se carga dentro del tiempo de espera, obtendrá una excepción web y sabrá que el sitio está fallando.

Además, si tiene el presupuesto, existen servicios de monitoreo externo como gomez.com que pueden automatizar esto y proporcionar informes sobre la disponibilidad del sitio.

Otros consejos

Puede crear un servicio web dentro del proyecto llamado IAMALIVE y hacer que devuelva un solo carácter.

En su área de WinForms, consuma dicho servicio web y, si funciona, su sitio está activo.

En la esencia de la respuesta de Papuccino: en realidad puede crear servicios web que están incrustados en el código C # detrás de sus páginas WebForms marcándolos con el atributo [WebMethod] . Esos residirán dentro de la aplicación web, no solo en el servidor.

haga que su página de formulario web abra una conexión de base de datos y realice algo simple / de bajo impacto, por ejemplo

select SystemTableId from dbo.[SystemTable] where SystemTableId = 1

donde SystemTable es una tabla de una sola fila.

Si la página arroja una excepción por cualquier motivo, Response.Write el mensaje de excepción, de lo contrario Response.Write (" SUCCESS ") o similar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top