कुछ दिनों के लिए googling के बाद, मैं वास्तव में वर्णित समस्या हल नहीं कर सकता। उम्मीद है कि यहां एक समाधान मिलेगाGetRequestStream टाइमआउट अपवाद को यादृच्छिक रूप से
मैं उसी सर्वर पर डब्ल्यूसीएफ सेवा को कॉल करते समय संलग्न कोड का उपयोग कर रहा हूं। मैं कॉल WebReq.GetRequestStream() में बेतरतीब ढंग से समय समाप्त त्रुटि मिलती है
जब मैं जांच netstat मुझे लगता है कि कनेक्शन खुला रहता है, तो शायद वहाँ एक समस्या है, लेकिन मैं यह कैसे
//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();
हल करने के लिए पता नहीं है कर रहा हूँ
टाइमआउट को कुछ समय के निष्क्रिय समय के बाद ज्यादातर फेंक दिया जाता है, लेकिन पंक्ति में पांच या तो अनुरोध के बाद भी। वास्तव में एक पैटर्न नहीं मिल सकता है।
इस कोड के साथ क्या गलत हो सकता है? क्या डब्ल्यूसीएफ सेवा को कॉल करने के लिए कोई अन्य (बेहतर) तरीका है?
यह थोड़ा बेहतर है, लेकिन मुझे अभी भी टाइमआउट मिल रहा है। तो, यह वास्तव में अजीब है। तो 1 लिंक क्लिक के बाद लोड हो रहा है और लोड हो रहा है और यदि उस समय पृष्ठ पर उसी या किसी अन्य लिंक पर क्लिक करें तो पेज दूसरे या तो लोड हो जाता है। तो कनेक्शन निर्माण के साथ कुछ गड़बड़ है। जैसा कि मुझे लगता है कि – AnzeR
मैंने देखा नहीं था कि यह एक ही मशीन पर था ... मुझे आश्चर्य है कि क्या आप थ्रेड पूल धागे से बाहर हो रहे हैं - क्या ये एक ही प्रक्रिया में हैं? –
मैं .NET प्रोग्रामिंग में काफी नया हूं। कुछ वर्षों से PHP में प्रोग्रामिंग कर रहे हैं, और ऐसी कोई समस्या कभी नहीं देखी गई है। ये चीजें बहुत आसान हैं। तो मुझे यकीन नहीं है कि "थ्रेड पूल धागे से बाहर" के साथ आपका क्या मतलब था? एक अनुरोध के साथ मैं डब्ल्यूसीएफ सेवा के लिए यह HTTP अनुरोध दो या तो बना देता हूं, इसलिए यह एक ही प्रक्रिया/अनुरोध के साथ है। क्या मुझे इन अनुरोधों के लिए कैशिंग का उपयोग करना चाहिए? – AnzeR