我的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