मुझे अपने वेब सर्वर पर चलने वाली मेरी WCF सेवा के लिए Windows सेवा से WCF कॉल का उपयोग करने में समस्या हो रही है। यह कॉल कई हफ्तों से काम कर रही है, लेकिन फिर अचानक काम करना बंद कर दिया, और तब से काम नहीं किया है।
मुझे जो अपवाद मिल रहा है, वह है:
सामान्य त्रुटि हुई System.ServiceModel.CommunicationException: HTTP अनुरोध करते समय कोई त्रुटि उत्पन्न हुई
और फिर यह कहता है
यह इस तथ्य के कारण हो सकता है कि HTTPS मामले में HTTP.SYS के साथ सर्वर प्रमाणपत्र ठीक से कॉन्फ़िगर नहीं किया गया है। यह क्लाइंट और सर्वर के बीच सुरक्षा बंधन के बेमेल के कारण भी हो सकता है।
किसी भी तरह के एन्क्रिप्शन के बिना, दोनों सिरों पर मैं जो सुरक्षा का उपयोग कर रहा हूं वह wsHttpBinding है। यह सिर्फ HTTP का उपयोग कर रहा है - HTTPS का नहीं, इसलिए मुझे यकीन नहीं है कि यह HTTPS के बारे में शिकायत क्यों कर रहा है।
बाकी आंतरिक अपवाद स्टैक है:
SystemNet.WebException: अंतर्निहित कनेक्शन को बंद कर दिया गया था: एक अनपेक्षित त्रुटि एक भेजने पर हुई। ---> System.IO.IOException: ट्रांसपोर्ट कनेक्शन में डेटा लिखने में असमर्थ: एक अमान्य तर्क की आपूर्ति की गई थी। --- - System.Net.Sockets.SocketException: System.Net.Sockets.Socket.Socket.MultipleSend (BufferOffsetSize [] बफ़र्स, System.Net.Sockets.NetworkStream.MultipleWrite (BufferOffsetSize []] में एक अमान्य तर्क की आपूर्ति की गई थी। बफ़र)
मुझे यह भी ध्यान देना चाहिए कि मेरे कार्यक्रम में यह बिंदु जहां यह होता है, वेब सेवा के लिए कॉल की "निष्पादित" पंक्ति पर है - अर्थात, जैसे ही मैं वेब सेवा को कॉल करता हूं और इसे लपेटता हूं डेटाकोन्ट्रेक्ट ऑब्जेक्ट को पास करता हूं, यह फटना।
यह सब सेवा जो कर रही है वह बड़ी मात्रा में एक्सएमएल (ग्राहक पक्ष पर कॉल के लिए एक .NET ऑब्जेक्ट के रूप में पारित) हो रही है, जिसके साथ यह कुछ काम करता है। संभवतः XML के लगभग 100-200k को प्रसारित किया जा रहा है। मैंने दोनों साइज़ के डेटा साइज़ की सीमाएँ 6 से अधिक मीज़ों तक बढ़ा दी हैं, लेकिन इससे कोई मदद नहीं मिली।
कोई विचार?
इस मुद्दे पर कुछ और जानकारी:
जब हम क्लाइंट वातावरण को स्थानीय रूप से डुप्लिकेट करते हैं, तो हम पाते हैं कि हम बड़ी मात्रा में XML अपलोड नहीं कर सकते हैं जब तक कि हम निम्नलिखित बदलाव नहीं करते हैं: 1. सर्वर पर, "maxRequestLength" को 100 एमबी (जिस तरह से हम भेज रहे हैं उससे अधिक) सेट करें। 2. पर क्लाइंट, हमने डेटा कॉंट्रेक्टसियराइज़र टैग के तहत maxItemsInObjectGraph का मान "2147483646" पर सेट किया है।
इन परिवर्तनों के साथ, हमारी स्थानीय स्थापना सफलतापूर्वक अपलोड होती है। हालाँकि, क्लाइंट का उनके सर्वर पर स्थापित अभी भी विफल रहता है। ध्यान देने वाली बात यह है कि एक बार जब हमने सर्वर पर मैक्सिमम लाइस्ट वैल्यू में बदलाव किया, तो हमारे टेस्ट इंस्टॉलेशन ने विशेष रूप से maxItemsInObjectGraph सेटिंग से संबंधित एक एरर फेंकना शुरू कर दिया। जबकि हमारे ग्राहक के सर्वर पर, अभी भी मूल "HTTP.sys" त्रुटि हो रही है।
जैसा कि मैंने पहले उल्लेख किया है, हम एसएसएल का उपयोग नहीं कर रहे हैं, और 2 अन्य वेब सेवाएं कॉल हैं जो एक्सएमएल को उसी तरह निष्पादित और अपलोड करती हैं। हालाँकि, चूंकि गैर-कार्यशील सेवा कॉल अधिक डेटा प्रसारित करती है, इसलिए यह एक आकार का मुद्दा प्रतीत होता है।
हालाँकि, अगर समस्या ग्राहक की वही थी जो हमारे परीक्षण स्थापित की थी, तो मुझे नहीं मिलता कि क्लाइंट त्रुटि संदेश ऑब्जेक्टग्राफ त्रुटि से संबंधित क्यों नहीं होगा।
क्या यह संभव है कि हम क्लाइंट पर हर संभावित त्रुटि के लिए सामान्य "अवैध पैरामीटर" "HTTP.sys" त्रुटि प्राप्त कर रहे हैं (यानी यह वास्तव में ऑब्जेक्टग्राफ त्रुटि भी हो रही है, लेकिन अभी यह नहीं दिखा रहा है?)