asp.net - HttpClient: Only one usage of each socket address (protocol/network address/port) is normally permitted -


  का उपयोग कर (var क्लाइंट = नया एचटीटीपी क्लाइंट ()) {client.BaseAddress = new URI (यूआरएल); client.DefaultRequestHeaders.Accept.Clear (); Client.DefaultRequestHeaders.Accept.Add (नया MediaTypeWithQualityHeaderValue ("एप्लिकेशन / xml")); का उपयोग करते हुए (वर कार्य = client.PostAsJsonAsync (यूआरएल, शरीर)) {if (! task.Result.StatusCode = HttpStatusCode.OK) नया अपवाद (task.Result.ReasonPhrase) फेंक; }  

}

सुनिश्चित नहीं है कि हमें प्रत्येक सॉकेट एड्रेस (प्रोटोकॉल / नेटवर्क एड्रेस / पोर्ट) का एकमात्र उपयोग केवल xx.xxx.xxx की अनुमति है। Xx: 80 त्रुटि

  सिस्टम। अगागेट अपवाद: एक या अधिक त्रुटियां हुईं --- & gt; System.Net.Http.HttpRequestException: अनुरोध भेजने में एक त्रुटि हुई --- & gt; System.Net.WebException: दूरस्थ सर्वर से कनेक्ट करने में असमर्थ --- & gt; System.Net.Sockets.SocketException: पर System.Net.Sockets.Socket.EndConnect (IAsyncResult asyncResult) पर 80: प्रत्येक सॉकेट पते (प्रोटोकॉल / नेटवर्क पता / पोर्ट) का केवल एक उपयोग सामान्य रूप से xx.xx.xx.xx अनुमति दी है System.Net.ServicePoint.ConnectSocketInternal (बूलियन connectFailure, सॉकेट एस 4, सॉकेट S6, सॉकेट & amp; सॉकेट, IPAddress & amp; पता, ConnectSocketState राज्य, IAsyncResult asyncResult, अपवाद & amp; अपवाद) --- भीतरी अपवाद स्टैक ट्रेस की समाप्ति --- सिस्टम पर। Net.HttpWebRequest.EndGetRequestStream (IAsyncResult asyncResult, TransportContext & amp; संदर्भ) System.Net.Http.HttpClientHandler.GetRequestStreamCallback पर (IAsyncResult ए आर) --- भीतरी अपवाद स्टैक ट्रेस की समाप्ति --- --- भीतरी अपवाद स्टैक ट्रेस का अंत - - System.Threading.Tasks.Task`1.GetResultCore (बूलियन waitCompletionNotification) पर  

प्रश्न में त्रुटि WSAEADDRINUSE (10048):

< P> पता पहले से उपयोग में है।
सामान्यतया, प्रत्येक सॉकेट पता (प्रोटोकॉल / आईपी पता / पोर्ट) का केवल एक ही उपयोग की अनुमति है यह त्रुटि तब आती है जब कोई अनुप्रयोग एक सॉकेट को किसी आईपी पता / पोर्ट से बाँध करने का प्रयास करता है जो पहले से ही किसी मौजूदा सॉकेट के लिए इस्तेमाल किया गया है, या एक सॉकेट जिसे ठीक से बंद नहीं किया गया था, या जो अभी भी बंद करने की प्रक्रिया में है सर्वर अनुप्रयोगों के लिए जो एक से अधिक सॉकेट को एक ही पोर्ट संख्या में बाँध की आवश्यकता होती है, setockopt (SO_REUSEADDR) का उपयोग करने पर विचार करें। क्लाइंट अनुप्रयोगों को आम तौर पर सभी-कनेक्ट पर बाइंड कॉल करने की आवश्यकता नहीं है एक अप्रयुक्त पोर्ट स्वचालित रूप से चुनता है जब बाँध को एक वाइल्डकार्ड पता (ADDR_ANY को शामिल करते हुए) कहा जाता है, तो जब तक विशिष्ट पता वचनबद्ध नहीं होता है, तब तक एक WSAEADDRINUSE त्रुटि विलंबित हो सकती है। यह एक अन्य समारोह में कॉल के साथ हो सकता है, जिसमें कनेक्ट, सुनो, डब्लूएसएक्सनैक्ट, या डब्लूएसएओएनएलईएफ़ भी शामिल है।

इसका मतलब है कि आपके पास एकाधिक कोड हैं, एचटीटीपीएलएन्ट ऑब्जेक्ट्स बाइंड करने की कोशिश कर रहा है खुद को एक ही समय में एक ही स्थानीय आईपी / पोर्ट के लिए, या कोई अन्य ऐप एक आईपी / पोर्ट का उपयोग कर रहा है जो एक एचटीटीपी क्लाइंट भी उपयोग करने का प्रयास कर रहा है।

अधिक संभावना है, आप संभवत: HTTP अनुरोधों को अक्सर पोस्ट करते हैं, और हो सकता है कि प्रतिसाद पूरी तरह से नहीं खपत हो, जो एएसपी को पूलिंग और कनेक्शनों का पुन: उपयोग करने से रोकता है और इस तरह से समय के साथ पोर्ट थकावट का सामना करना पड़ता है।


Comments

Popular posts from this blog

c# - NewtonSoft JArray - how to select multiple elements with LINQ -

c# - Process.Kill() returns access denied -

c# - Using the generic type 'System.Collections.Generic.List<T>' requires 1 type arguments -