0

すべての接続が実行される前に接続がまだ有効であるかどうかを確認するにはどうすればよいですか(グローバルOnBeforeExecuteイベントハンドラーも)、またはグローバル例外ハンドラー「接続からのデータの読み取りエラー」を作成する必要があります

4

1 に答える 1

0

私が見つけた最良の方法は、実際に接続を確立しようとする必要があることです。

保存したコードは次のとおりです。

 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;
 }
于 2012-10-10T14:13:54.367 に答える