2009-10-22 6 views
2

Je dois créer une fonction .NET qui teste si un site Web spécifique est en ligne. Quelle est la meilleure façon de procéder? J'allais simplement faire un ping sur le site, mais je me demandais s'il y avait une méthode plus précise.Vérification de l'état du site Web dans .NET

Merci!

+0

Ping est pas la meilleure solution car elle ne vérifie pour voir si la machine est ou non. L'état du serveur web est toujours en question. –

+0

Excellente synchronisation pour votre question - On m'a demandé de le faire récemment! Merci. –

+0

J'ai pensé que le ping était une méthode inférieure à la normale, c'est pourquoi j'ai demandé. –

Répondre

16

Je l'utilise toujours pour vérifier si les sites Web fonctionnent correctement:

public bool IsWebsiteOnline(string url) 
{ 
    try 
    { 
     HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url); 
     myReq.Timeout = 10000; 

     using (HttpWebResponse response = (HttpWebResponse)myReq.GetResponse()) 
     { 
      return response.StatusCode == HttpStatusCode.OK; 
     } 
    } 
    catch 
    { 
     return false; 
    } 
} 
+0

C'est le chemin à parcourir, car tous les serveurs ne répondront pas à une requête PING – invert

+1

Vous devriez utiliser. En utilisant (HttpWebResponse response = (HttpWebResponse) myreq.GetResponse()) {..} ou Fermer le HttpWebResponse –

+0

@Carl: merci, j'ai ajouté la partie using. – pyrocumulus

0

Un ping vérifie que le serveur répond. Cependant, la partie de l'application Web pourrait être en baisse, le db pourrait se faire, etc, etc.

écrit SO une demande de données HTTP de l'URL, et:

1) vérifier la réponse du code d'état est OK

2) vérifier qu'il y avait contenu du tout (non vide la page)

* 3) si vous voulez vraiment être intelligent, selon les besoins, valider les données renvoyées - à savoir comparer une partie de celui-ci pour une chaîne particulière.

* mais à un strict minimum, je vous suggère 1 et 2.

1

Ne présumez jamais la capacité de ping un site vous donne des informations sur l'état de celui-ci, autres que la boîte est activée et arrive à répondre aux pings.

0

Vous pouvez utiliser Watin pour effectuer de petites tâches et ainsi juger si le site fonctionne correctement. Watin vous permet également de tester les fonctionnalités.
(Une partie du code volé leur site)

public void SearchForWatiNOnGoogle() 
{ 
using (IE ie = new IE("http://www.google.com")) 
{ 
    ie.TextField(Find.ByName("q")).TypeText("WatiN"); 
    ie.Button(Find.ByName("btnG")).Click(); 

    Assert.IsTrue(ie.ContainsText("WatiN")); 
} 
} 
Questions connexes