我的asp.net应用程序发送的HttpWebRequest到远程REST服务器并等待响应,我发现有很多相同的错误消息的是这样的:如何关闭捕捉的HttpWebRequest超时后底层连接
系统。 Net.WebException:操作超时。在 System.Net.HttpWebRequest.GetResponse()
那是可能的,我捕获这个异常后直接关闭底层的HTTP连接?或者我没有必要这样做,因为我已经设置keepalive为false?
谢谢。
其实另一个问题是如果超时异常总是发生在System.Net.HttpWebRequest.GetResponse(),
这是否意味着应用程序正在等待远程服务器的响应,并且在超时之前无法获得响应。可能的原因是什么,网络连接不稳定?远程服务器没有响应?任何其他可能的原因?
下面是代码:
System.Net.HttpWebResponse httpWebResponse = null;
System.IO.Stream stream = null;
XmlTextReader xmlTextReader = null;
try
{
System.Net.HttpWebRequest httpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(request);
httpWebRequest.ReadWriteTimeout = 10000;
httpWebRequest.Timeout = 10000;
httpWebRequest.KeepAlive = false;
httpWebRequest.Method = "GET";
httpWebResponse = (System.Net.HttpWebResponse)httpWebRequest.GetResponse();
stream = httpWebResponse.GetResponseStream();
xmlTextReader = new XmlTextReader(stream);
xmlTextReader.Read();
xmlDocument.Load(xmlTextReader);
//Document processing code.
//...
}
catch
{
//Catch blcok with error handle
}
finally
{
if (xmlTextReader != null)
xmlTextReader.Close();
if (httpWebResponse != null)
httpWebResponse.Close();
if (stream != null)
stream.Close();
}
没有你的身影解决?我正在打同样的问题。我没有想法。 – 2012-09-03 17:10:59
@AlekseyBykov你说过,那标记的答案不'解决你的问题?备择方案 ? – Kiquenet 2015-09-05 09:39:06