在检查网站状态时,网站变得无法响应并无限期地随机加载

时间:2011-07-27 13:29:29

标签: asp.net httpwebrequest

我使用以下代码检查大约20个内部和外部网站的状态,以了解它们何时返回错误。最近它将在16个站点运行,然后在16日,它将挂在那里。如果我试图打开它有问题的网站,它会继续加载,永远不会完成。如果我等几分钟它可能会有效。

我发送了太多请求吗?

我的代码是否会导致网站无法响应?

有没有更好的方法来获取网站的状态代码?

private int getWebRequestValue(string website)
{
    try {
        WebRequest request = WebRequest.Create(website);
        using (WebResponse response = request.GetResponse()) {
            HttpWebResponse httpResponse = (HttpWebResponse)response;
            return httpResponse.StatusCode;
        }
    } catch (WebException e) {
        using (WebResponse response = e.Response) {
            if (response == null) {
                return 1;
            } else {
                HttpWebResponse httpResponse = (HttpWebResponse)response;
                return httpResponse.StatusCode;
            }
        }
    }
}

注意

我无法使用公司进行网站监控

更新 在运行我的应用程序后使用fiddler后,我可以看到未加载的网站正在获取302状态代码

1 个答案:

答案 0 :(得分:0)

我认为您的代码没有任何方式导致网站挂起。此外,这似乎是获取状态代码的好方法。您可能需要做的是为您的webrequest添加超时,比如说30秒。 WebRequest.Timeout是属性,更多信息@ http://msdn.microsoft.com/en-us/library/system.net.webrequest.timeout.aspx