在.NET中检查网站状态

时间:2009-10-22 14:51:09

标签: .net

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

谢谢!

4 个答案:

答案 0 :(得分:16)

我总是使用它来检查网站是否正常工作:

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;
    }
}

答案 1 :(得分:1)

永远不要认为ping网站的能力会为您提供有关其状态的任何信息,除了打开该框并碰巧响应ping。

答案 2 :(得分:0)

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

从URL写入HTTP数据请求,并且:

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

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

* 3)如果你真的想要聪明,根据要求,验证返回的数据 - 即比较一部分特定字符串。

*但至少我建议1和2。

答案 3 :(得分:0)

您可以使用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"));
 }
}