我使用以下代码检查大约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状态代码
答案 0 :(得分:0)
我认为您的代码没有任何方式导致网站挂起。此外,这似乎是获取状态代码的好方法。您可能需要做的是为您的webrequest添加超时,比如说30秒。 WebRequest.Timeout是属性,更多信息@ http://msdn.microsoft.com/en-us/library/system.net.webrequest.timeout.aspx。