2009-09-22 29 views
6

मैं एक .NET अनुप्रयोग लिख रहा हूं जो किसी अन्य .NET अनुप्रयोग को डेटा पोस्ट करना है। मैं प्रवेश पृष्ठSystem.Net.WebException: अंतर्निहित कनेक्शन बंद था: कनेक्शन अप्रत्याशित रूप से बंद किया गया था

WebProxy proxy = new WebProxy("http://proxy:80/", true); 
HttpWebRequest webRequest = WebRequest.Create(LOGIN_URL) as HttpWebRequest; 
//proxy.Credentials = new NetworkCredential("myusername", "mypassword", "domain"); 
// webRequest.Proxy = proxy; 
webRequest.Proxy = WebRequest.DefaultWebProxy; 

StreamReader responseReader = new StreamReader 
            (webRequest.GetResponse().GetResponseStream()); 
string responseData = responseReader.ReadToEnd(); 

अनुरोध करने के लिए निम्नलिखित कोड का उपयोग, लेकिन यह इस लाइन

StreamReader responseReader = new StreamReader 
            (webRequest.GetResponse().GetResponseStream()); 

त्रुटि संदेश के साथ पर विफल रहता है:

System.Net.WebException: The underlying connection was closed: The connection was 
         closed unexpectedly. 
+2

, मेरा सुझाव है कि आप अपवाद पकड़ने वाले कोड में कॉल को लपेटें, और पूर्ण स्टैक ट्रेस प्रिंट करें। –

+1

यह अपवाद विशेष रूप से ट्रैक करना मुश्किल है। यदि आप कोई उचित उत्तर – Rik

+0

अपवाद से स्टैक ट्रेस को कुछ भी नहीं देते हैं, तो सिस्टम.Net.HttpWebRequest.GetResponse() – Kwah009

उत्तर

2

मैं एक, जबकि एक ही अपवाद का सामना करना पड़ा पहले और मुझे याद है कि कुछ मामलों में यह होता है .NET में एक बग के कारण। आप उच्च मानों के अनुरोध के टाइमआउट और रीडवाइटटाइमआउट को सेट करके या KeepAlive को गलत पर सेट करके इस पर काम कर सकते हैं।

यह केवल, एक समाधान हो सकता है, हालांकि, तो मैं सुझाव है कि आप कुछ भी यह सोचते हैं इससे पहले कि वास्तविक मूल कारण खोजने की कोशिश।

मैं तुम्हें .NET 2.0 का उपयोग कर रहे या इसके बाद आप नेटवर्क ट्रेसिंग सक्षम और देखते हैं कि वास्तव में अधिक हो रहा है कर सकते हैं, मतलब समय में, Big files uploading (WebException: The connection was closed unexpectedly)

+0

ऐसा लगता है कि हम यहां कुछ पर हैं। अब मुझे त्रुटि संदेश मिल गया है दूरस्थ सर्वर ने एक त्रुटि लौटा दी: (411) लंबाई आवश्यक है। हालांकि जब मैं लम्बाईल्ड सेट करता हूं तो एप्लिकेशन लटकता है ... – Kwah009

6

पर देखने के कुछ वेब संदर्भ के साथ आने की कोशिश करता हूँ तार। इस तरह आप इस विशेष अपवाद के बारे में अधिक जानकारी प्राप्त कर सकते हैं।

अधिक जानकारी के लिए लिंक का पालन देखें, http://msdn.microsoft.com/en-us/library/hyb3xww8%28VS.80%29.aspx

0

संभव मुद्दों के लिए की तरह लगता है:

  1. आप प्रॉक्सी आप के लिए बनाने के आवंटित कभी नहीं अपने HttpWebRequest

    WebProxy **proxy** = new WebProxy("http://proxy:80/", true); 
    HttpWebRequest webRequest = WebRequest.Create(LOGIN_URL) as HttpWebRequest; 
    //proxy.Credentials = new NetworkCredential("myusername", "mypassword", "domain"); 
    // webRequest.Proxy = proxy; 
    webRequest.Proxy = **WebRequest.DefaultWebProxy**; 
    

    आप आवंटित करने चाहिए यह इस तरह है:

    WebProxy proxy = new WebProxy("http://proxy:80/", true); 
    HttpWebRequest webRequest = WebRequest.Create(LOGIN_URL) as HttpWebRequest; 
    webRequest.Proxy = proxy; 
    

    (अंतिम पंक्ति में अंतर देखें)।

  2. आप अपने प्रॉक्सी पर पोर्ट 80 का उपयोग करते हैं। यकीन है कि यह सही है?

       System.Net.ServicePointManager.Expect100Continue = false; 
    

    और इनमे से कोई भी: कई प्रॉक्सी पोर्ट का उपयोग 8080.

-1
myHttpWebRequest.Credentials = CredentialCache.DefaultCredentials; 

इस समाधान

3

मेरे मामले में, इस समस्या का समाधान।

+0

मुझे एक एम्बेडेड डिवाइस वेब सेवा से संवाद करने का प्रयास करने में कोई समस्या थी और यह समाधान था। – jamesallman

0

मेरे मामले में मुझे केवल उसी पोर्ट पर HTTP लेकिन HTTPS की अनुमति देने के लिए प्रॉक्सी सेटिंग्स सेट करने की आवश्यकता नहीं थी, क्योंकि अनुरोधों में से एक HTTPS प्रोटोकॉल द्वारा भेजा गया था।

0

यह मेरे लिए अलग मामला था। प्रश्न बहुत अधिक समय ले रहा था इसलिए कनेक्शन समय समाप्त हो गया था। डब्ल्यूसीएफ में पांच टाइमआउट हैं 1. टाइमआउट भेजें - डिफ़ॉल्ट 1 मिनट 2. टाइमआउट प्राप्त करें - डिफ़ॉल्ट 1 मिनट 3. ओपन टाइमआउट - डिफ़ॉल्ट 1 मिनट 4।बंद करें टाइमआउट - डिफ़ॉल्ट 1 मिनट 5. निष्क्रियता टाइमआउट- डिफ़ॉल्ट 10 मिनट

मैंने सही समय पर भेजें और प्राप्त किया था लेकिन समस्या निष्क्रियता के कारण थी क्योंकि सर्वर पर क्वेरी बहुत लंबी थी, डब्ल्यूसीएफ सेवा चैनल बंद कर रही थी इसलिए यह था प्रतिक्रिया वापस भेजने में विफल। उम्मीद है कि यह मदद करता है अगर आप सर्वर से प्रतिक्रिया प्राप्त करने के लिए डब्ल्यूसीएफ का उपयोग कर रहे हैं जो चलाने में लंबा समय लगता है।

0

मुझे यह समस्या एक बार थी। मेरा वायरस सुरक्षा अपराधी था। समस्या को ट्रैक करना शुरू करने के लिए

संबंधित मुद्दे

 संबंधित मुद्दे