Sau khi googling trong vài ngày, tôi thực sự không thể giải quyết vấn đề được mô tả. Hy vọng ở đây sẽ tìm thấy một giải phápGetRequestStream ném ngoại lệ hết thời gian một cách ngẫu nhiên
Tôi đang sử dụng mã được đính kèm khi gọi dịch vụ WCF trên cùng một máy chủ. Tôi nhận được lỗi Timeout ngẫu nhiên trong WebReq.GetRequestStream call()
Khi tôi kiểm tra netstat tôi thấy rằng kết nối vẫn mở, như vậy có lẽ là có một vấn đề, nhưng tôi không biết làm thế nào để giải quyết nó
//request inicialization
HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(url);
WebReq.Method = "POST";
WebReq.ContentType = "application/json; charset=utf-8";
WebReq.ContentLength = buffer.Length;
WebReq.Proxy = null;
WebReq.KeepAlive = false; //also tried with true
WebReq.AllowWriteStreamBuffering = false; //also tried with true
//this produces an error
using (Stream PostData = WebReq.GetRequestStream())
{
PostData.Write(buffer, 0, buffer.Length);
PostData.Close();
}
//open and read response
HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
Stream Answer = WebResp.GetResponseStream();
StreamReader _Answer = new StreamReader(Answer);
WebResp.Close();
//return string
return _Answer.ReadToEnd();
Thời gian chờ được ném chủ yếu sau khoảng 10 giây không hoạt động, nhưng cũng sau năm yêu cầu trong hàng. Thực sự không thể tìm thấy một mô hình.
Điều gì có thể sai với mã này? Có cách nào khác (tốt hơn) để gọi dịch vụ WCF không?
Đó là một chút tốt hơn, nhưng tôi vẫn nhận được thời gian chờ. Vì vậy, nó thực sự kỳ lạ. Vì vậy, sau khi nhấp vào liên kết thứ nhất là Tải và Tải và nếu trong thời gian đó, nhấp vào cùng hoặc bất kỳ liên kết nào khác trên trang, sau đó tải trang trong lần thứ hai hoặc lâu hơn. Vì vậy, có cái gì đó sai trái với việc tạo kết nối. Như tôi giả sử – AnzeR
Tôi đã không phát hiện ra rằng nó đã được trên cùng một máy ... Tôi tự hỏi liệu bạn đang chạy ra khỏi thread thread thread - là những trong cùng một quá trình? –
Tôi khá mới trong lập trình .net. Đã được lập trình trong PHP cho một số năm nay, và không bao giờ nhận thấy một vấn đề như vậy. Có những thứ này dễ dàng hơn nhiều. Vì vậy, tôi không chắc chắn những gì bạn đã có nghĩa là với "chủ đề hồ bơi thread"? Với một yêu cầu, tôi tạo hai hoặc nhiều yêu cầu HTTP này cho dịch vụ WCF, vì vậy nó có cùng một quy trình/yêu cầu. Tôi có nên sử dụng bộ nhớ đệm cho các yêu cầu này không? – AnzeR