我目前面临一个奇怪的问题。我正在测试网站响应时间,但是当第三次(连接计时)方法循环时,它会挂起:
internal class Program
{
Console.ReadLine();
loop();
}
}
它挂起之前的输出是:“HTTP Response Timer”,所以我认为它与正在运行的实例有关。
答案 0 :(得分:5)
您必须关闭回复。否则,您将达到最大打开连接数。
使用using语句,这是关闭和处理响应的最简单方法:
using(HttpWebResponse response = (HttpWebResponse)request.GetResponse()){
// .. here some action if any
}
答案 1 :(得分:2)
您没有处理响应,这意味着它会挂在先前请求的连接上。然后新请求等待从池中获取该连接,并阻止因为旧响应仍然“拥有”连接只需将代码更改为:
// You weren't really using the HttpWebResponse class anyway, so why cast?
using (var response = request.GetResponse())
{
}
你真的是不是想要递言?你为什么不循环使用:
while(true)
{
GetResponse();
}
或类似的东西?