Question

Je dois écrire une simple application WinForms pouvant être déclenchée pour vérifier si un site Web est toujours en vie et qu'il peut lire à partir d'une base de données.

J'utilise l'ensemble "(HttpWebResponse) myHttpWebRequest.GetResponse ()". chose en c # pour vérifier si le site est actif, mais j’ai du mal à savoir comment obtenir une page de test sur mon site Web afin d’écrire quelque chose dans le champ "Réponse". pour indiquer qu'il a pu tester sa propre connectivité à la base de données.

Voici l'exemple de code pour mon côté Winforms (extrait du 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;
  }
}

J'espérais obtenir de l'aide du côté des formulaires Web pour revenir au code ci-dessus.

Merci pour toute aide que vous pouvez fournir.

  • Richard
Était-ce utile?

La solution

Que se passe-t-il lorsque votre site échoue? Renvoie-t-il un code d'état 500 ou un délai d'attente?

Une autre façon de voir les choses: fait-il toujours quelque chose d’attendu s’il réussit?

Dans votre application Web, vous pouvez appeler une URL qui, à votre connaissance, renverra un code de 200 réponses ou contiendra une balise HTML attendue dans la réponse si tout va bien.

Demandez à votre winform d’appeler cette URL et d’examiner le fichier Response.status ou le texte dans le tampon de sortie pour connaître le balisage attendu. Vous devez également créer un délai d’expiration dans votre requête http. Si la page ne se charge pas dans le délai imparti, vous obtiendrez une exception Web et vous saurez que le site est en panne.

En outre, si votre budget est suffisant, il existe des services de surveillance externes tels que gomez.com qui peuvent automatiser ce processus et générer des rapports sur la disponibilité du site.

Autres conseils

Vous pouvez créer un service Web dans le projet appelé I AM ALIVE et lui demander de renvoyer un seul caractère.

Dans votre espace WinForms, utilisez WebService et, si cela fonctionne, votre site est actif.

Dans l’essence même de la réponse de Papuccino: vous pouvez créer des services Web intégrés au code C # de vos pages WebForms en les marquant avec l’attribut [WebMethod] . Ceux-ci résideront dans l'application Web, pas seulement le serveur.

demandez à votre page de formulaire Web d'ouvrir une connexion à une base de données et effectuez une opération simple / sans impact, par exemple.

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

où SystemTable est une table à une seule ligne.

Si la page lève une exception pour une raison quelconque, Response.Write le message d'exception, sinon Response.Write ("SUCCESS") ou similaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top