代码之家  ›  专栏  ›  技术社区  ›  Mike Cole

在.NET中检查网站状态

  •  2
  • Mike Cole  · 技术社区  · 15 年前

    我需要构建一个测试特定网站是否在线的.NET函数。最好的方法是什么?我本来打算简单地ping这个网站,但我想知道是否有更准确的方法。

    谢谢!

    4 回复  |  直到 15 年前
        1
  •  16
  •   pyrocumulus    15 年前

    我总是用这个检查网站是否正常工作:

    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;
        }
    }
    
        2
  •  1
  •   Chris Ballance    15 年前

    不要认为ping站点的能力会给您提供关于站点状态的任何信息,除非该框已打开并且正好响应ping。

        3
  •  0
  •   Mark Mayo    15 年前

    ping检查服务器是否响应。然而,Web应用程序部分可能会关闭,数据库可能会完成等等。

    因此,从URL编写HTTP数据请求,并:

    1)检查状态码响应是否正常

    2)检查是否有内容(非空页)

    *3)如果你真的想聪明,根据需要,验证返回的数据——也就是将它的一部分与特定的字符串进行比较。

    *但至少我建议1和2。

        4
  •  0
  •   Carl Bergquist    15 年前

    你可以使用 Watin 执行小任务,从而判断现场是否正常工作。

    watin也允许您测试功能。
    (一些代码从他们的网站上被盗)

    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"));
     }
    } 
    
    推荐文章