2012-10-09 3 views
0

Comment puis-je vérifier si la connexion en direct toujours est avant chaque connexion exécutée (également gestionnaire d'événements OnBeforeExecute global) ou je dois créer gestionnaire global d'exception « les données de lecture d'erreur de la connexion »événement OnBeforeExecute global ADO.NET

Répondre

0

Le Le mieux que j'ai trouvé est que vous devez essayer d'établir une connexion.

Voici le code que j'ai stocké:

private const int RETRY = 3; 

public bool Reachable(Uri Address, string responseExpected) { 
    for (int i = 0; i < RETRY; i++) { 
    try { 
     WebRequest req = WebRequest.Create(Address); 
     req.Method = "GET"; 
     using (WebResponse rsvp = req.GetResponse()) { 
     using (Stream s = rsvp.GetResponseStream()) { 
      using (StreamReader r = new StreamReader(s)) { 
      string text = r.ReadToEnd(); 
      r.Close(); 
      if ((String.IsNullOrEmpty(responseExpected)) || (-1 < text.IndexOf(responseExpected))) { 
       return true; 
      } 
      } 
     } 
     } 
    } catch (Exception err) { 
#if DEBUG 
     Debug.WriteLine("Url: " + Address.ToString()); 
     Debug.WriteLine(err.Message); 
#endif 
    } 
    } 
    return false; 
}