ứng dụng asp.net của tôi gửi HttpWebRequest đến máy chủ REST của từ xa và chờ đợi câu trả lời, và tôi thấy có rất nhiều thông báo lỗi tương tự như thế này:Làm thế nào để đóng kết nối cơ bản sau thời gian chờ HttpWebRequest bắt
System. Net.WebException: Thao tác đã hết thời gian chờ. tại System.Net.HttpWebRequest.GetResponse()
Có thể sau khi tôi bắt ngoại lệ này và đóng kết nối http cơ bản trực tiếp? hoặc tôi không thực sự phải làm như vậy kể từ khi tôi đã đặt keepalive để sai?
Cảm ơn.
Trên thực tế, một câu hỏi khác là nếu ngoại lệ hết thời gian luôn xảy ra tại System.Net.HttpWebRequest.GetResponse(),
có nghĩa là ứng dụng đang chờ phản hồi từ máy chủ từ xa và không thể nhận phản hồi cho đến khi hết giờ. những gì có thể là lý do có thể, kết nối mạng không ổn định? máy chủ từ xa không phản hồi? bất kỳ lý do nào khác có thể?
Đây là mã:
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();
}
bạn đã tìm giải pháp? Tôi đang chiến đấu cùng một vấn đề. Tôi không có ý kiến. –
@AlekseyBykov bạn đã nói, câu trả lời được đánh dấu là không giải quyết được vấn đề của bạn? lựa chọn thay thế? – Kiquenet