पर "अंतर्निहित कनेक्शन बंद था" प्राप्त करना मेरे पास VB.NET (नहीं एएसपीनेट में लिखा गया एक एप्लिकेशन है, यह एक विंडोज कंसोल ऐप है)। मैं एक यूआरएल (एक एचटीएमएल पेज) कॉल करने की कोशिश कर रहा हूं और एक स्ट्रिंग में प्रतिक्रिया वापस प्राप्त कर रहा हूं। प्रतिक्रिया सीधे जेएसओएन है, कोई भी एचटीएमएल टैग नहीं। यह {
के साथ खुलता है और }
के साथ बंद हो जाता है।HttpWebRequest
मैं HttpWebRequest ऑब्जेक्ट ठीक बना देता हूं। फिर req.GetResponse()
पर कॉल करें। जैसे ही मैं ऐसा करता हूं मुझे त्रुटि मिलती है The underlying connection was closed: The connection was closed unexpectedly.
मैं googling और stackoverflow की जांच कर रहा हूं, और जो भी मैंने पाया है उसे लागू करने की कोशिश की है (इसमें से बहुत से डब्ल्यूसीएफ सेवा कॉन्फ़िगरेशन के साथ करना है, जो लागू नहीं होता है)।
यहाँ मेरी कोड है:
Public Function GetJSON(ByRef d As db.Device) As Boolean
Try
d.Url = "http://" & d.IpAddress & ini.doc.<svc>.<url>.Value
Dim req As HttpWebRequest = HttpWebRequest.Create(d.Url)
// req.Accept = "*/*"
// req.Timeout = 30000
// req.ReadWriteTimeout = 30000
// req.KeepAlive = False
// req.UseDefaultCredentials = True
// req.CachePolicy = HttpWebRequest.DefaultCachePolicy
// req.Proxy = HttpWebRequest.DefaultWebProxy
// req.ProtocolVersion = New System.Version(1, 0)
Dim rsp As HttpWebResponse = req.GetResponse()
Return True
Catch ex As Exception
Log(ex.Message)
Return False
Finally
rsp = Nothing
req = Nothing
End Try
End Function
लाइनों पर टिप्पणी की (गलत टिप्पणी शैली, लेकिन इतना अतः यह सही पार्स जाएगा) सब बातों मैं क्या मिल गया है पर मैं अब तक के आधार की कोशिश की है ऑनलाइन कर रहे हैं । उनमें से कोई भी इसे ठीक नहीं किया। मैंने सत्यापित किया है कि बनाया गया यूआरएल सही है; अगर मैं अपने ब्राउज़र में एक ही यूआरएल को कॉल करता हूं तो यह बिल्कुल सही उम्मीद की प्रतिक्रिया देता है।
मैं इसे wiresharking की कोशिश की है ... और मैं वास्तविक उम्मीद, पूरा डेटा शार्क उत्पादन में वापस कुछ लाइनें आते हैं, और फिर, और फिर एक लाल रेखा जो कहते हैं: http > 51943 [RST] Seq=1607 Win=0 Len=0
जो अंतिम पंक्ति है .NET त्रुटि को फेंकने से पहले दिखाने के लिए।
मैं भी इतने पर यहाँ एक पोस्ट प्रति पर System.Net
ट्रेसिंग/प्रवेश मोड़ की कोशिश की, और से है कि मैं इसी तरह सभी की उम्मीद JSON डेटा को देखने के वापस आना है, लेकिन बाद में इसे वापस आता है यह इन पंक्तियों फेंकता आउटपुट फ़ाइल में .NET ट्रेस लॉग में:
System.Net.Sockets Verbose: 0 : [7040] Exiting Socket#60467532::Receive() -> 1605#1605
System.Net.Sockets Verbose: 0 : [7040] Socket#60467532::Receive()
System.Net.Sockets Verbose: 0 : [7040] Data from Socket#60467532::Receive
System.Net.Sockets Verbose: 0 : [7040] 00000000 : :
System.Net.Sockets Verbose: 0 : [7040] Exiting Socket#60467532::Receive() -> 0#0
System.Net.Sockets Verbose: 0 : [7040] Socket#60467532::Dispose()
System.Net Error: 0 : [7040] Exception in the HttpWebRequest#27806816:: - The underlying connection was closed: The connection was closed unexpectedly.
System.Net Error: 0 : [7040] Exception in the HttpWebRequest#27806816::GetResponse - The underlying connection was closed: The connection was closed unexpectedly.
कोई विचार यह कहने के लिए आगे जाने के लिए कहां जाना है? हम इस डेटा को कुछ पर्यावरण-निगरानी सेंसर उपकरणों से बाहर पढ़ रहे हैं, और उन्होंने हमें उपयोग करने के लिए यह यूआरएल दिया है।
दो चीजें हैं जो वास्तव में मुझे मिलता है और इस पर मुझे भ्रमित है कि
क) यह जब एक ब्राउज़र
ख में कहा जाता है पूरी तरह से ठीक काम करता है) दोनों WireShark और .NET सभी डेटा वास्तव में है दिखाने लगाने होते वापस आ रहा है, और फ्रेमवर्क किसी भी कारण से सभी डेटा प्राप्त करने के बाद छोड़कर है!
WebException ही बहुत कम इस्तेमाल किया जा रहा है, जैसा कि इसके InnerException रिक्त है और इसकी स्थिति सिर्फ कहते हैं, "ConnectionClosed {8}" पहले से
धन्यवाद !!!
अद्यतन 18/08 1130: मैं भी अब सिर्फ System.Net.WebRequest
का उपयोग कर की कोशिश की है के रूप में HttpWebRequest
करने का विरोध किया। इससे कोई फर्क नहीं पड़ता।
अद्यतन 18/08 1222: मैं बस अपना कोड स्विचन बजाय के बजाय एक WebClient
वस्तु ऊपर मंद करने के लिए [Http]Web[Request|Response]
का उपयोग कर और उसके DownloadString()
विधि का उपयोग करने की कोशिश की। हालांकि भी समान सटीक त्रुटि फेंकता है।
अद्यतन 08/18 1230:My.Computer.Network.DownloadFile()
का उपयोग करने का प्रयास किया - एक ही कनेक्शन बंद त्रुटि भी मिलती है।
यहाँ मेरा पूरा network.log नेट का पता लगाने के एक pastebin है फ़ाइल: http://pastebin.com/QfY05a11। आप लाइन 41 पर वापस आने वाले सभी JSON डेटा देख सकते हैं। – eidylon
यहां वायरसहार्क ट्रैफ़िक लॉग का पेस्टबिन है: http://pastebin.com/0hbEQerc। आप लाइन 607 पर वापस आने वाले डेटा को देख सकते हैं। – eidylon