我的问题可能很愚蠢,但需要回答。据我所知,只要" The Operation已经超时"在HttpWebRequest.GetResponse()
方法中发生异常,而不是关闭和释放连接。如果它不是真的比它是如何工作的?我试图谷歌这个,但无法得到答案。
编辑:在这种情况下,它是一个发布请求,建立了连接,并且调用的URL正在服务器端处理请求,但是HttpWebRequest对象正在等待响应并且在某个时间发生异常之后。
答案 0 :(得分:1)
我的理解是你必须调用Close方法来关闭流并释放连接。如果不这样做可能会导致您的应用程序用完连接。如果您不确定,可以随时在Close
方法或HttpWebRequest.GetResponse()
附近设置try / catch块。
答案 1 :(得分:0)
嗯,我不完全确定,但看起来Operation TimedOut
异常可能会导致底层连接通道出现故障;导致之后的所有请求都以相同的异常结束。
您必须调用Close方法关闭流并释放 连接。如果不这样做可能会导致您的申请用完 连接。
我做了一个小试验看
private static void MakeRequest()
{
WebRequest req = null;
try
{
req = WebRequest.Create("http://www.wg.net.pl");
req.Timeout = 10;
req.GetResponse();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
req.Timeout = 10000;
req.GetResponse(); // This as well results in TimeOut exception
}
}