2014-07-07 10 views
6

वेब सेवा बराबर सेट करने के लिए एक ASMX वेब सेवा (नहीं WCF)ASMX वेब सेवा संदर्भ कैसे MaxReceivedMessageSize को

मैं एक त्रुटि

भेजे गए संदेशों के लिए अधिकतम संदेश आकार कोटा प्राप्त कर रहा (65536) है बढ़ा दिया गया है। कोटा बढ़ाने के लिए, उपयुक्त बाध्यकारी तत्व

मैं एक प्रॉक्सी का उपयोग कर रहा है कि दृश्य स्टूडियो आपके लिए बनाए गए जब आप एक "वेब संदर्भ" (कृपया ध्यान दें कि मैं नहीं द्वारा जोड़ा जा रहा "सेवा संदर्भ जोड़ने पर MaxReceivedMessageSize संपत्ति का उपयोग ", इसके बजाय मैं वेब संदर्भ का उपयोग कर रहा हूं) ... यह SoapHttpClientProtocol

से प्राप्त प्रॉक्सी बनाता है जो कोई भी इस विधि के लिए MaxReceivedMessageSize के बराबर सेट करने के तरीके को समझने में मेरी सहायता कर सकता है? (अगर मैं डब्ल्यूसीएफ का उपयोग कर रहा था तो HttpBinding.MaxReceivedMessageSize = Int32.MaxValue करने के बराबर पूछ रहा हूं)

+0

क्या आप कॉन्फ़िगरेशन फ़ाइल पोस्ट कर सकते हैं? – DBK

उत्तर

2

यह संदेश डब्ल्यूसीएफ विशिष्ट है। मुझे संदेह है कि आप अपनी एएसएमएक्स सेवा को डब्ल्यूसीएफ क्लाइंट प्रॉक्सी के माध्यम से कॉल कर रहे हैं (क्लाइंट क्लास ClientBase से विरासत में है)। दूसरी तरफ, एक विशिष्ट ASMX क्लाइंट प्रॉक्सी SoapHttpClientProtocol से प्राप्त होती है।

चाल है, अगर आप विजुअल स्टूडियो के भीतर से "सेवा संदर्भ जोड़ें" तो डब्लूसीएफ-जैसी प्रॉक्सी डिफ़ॉल्ट रूप से बनाई गई है। पुरानी प्रकार की प्रॉक्सी बनाने के लिए, आपको प्रॉक्सी निर्माता संवाद पर "उन्नत" पर क्लिक करना चाहिए और फिर उन्नत गुण संवाद पर "सेवा संदर्भ जोड़ें" पर क्लिक करना चाहिए या कमांड लाइन से wsdl.exe टूल को आमंत्रित करना चाहिए।

"पुराने" में बनाई गई प्रॉक्सी में कोई संदेश कोटा नहीं है।

फिर भी, सर्वर और क्लाइंट दोनों के लिए विरासत ASMX तकनीक का उपयोग करके की अनुशंसा नहीं की जाती है।

+0

प्रतिक्रिया विकटोर के लिए धन्यवाद ... हाँ मैं "पुराना" (सेवा संदर्भ> उन्नत> वेब संदर्भ जोड़ें) का उपयोग कर रहा हूं। यह एक प्रॉक्सी बनाता है जो SoapHttpClientProtocol – Gustavo

+0

से प्राप्त होता है क्या कोई दस्तावेज है जो बताता है कि इस "पुराने" तरीके के लिए कोई संदेश कोटा नहीं है? – Gustavo

+0

मैं इसे वर्षों से उपयोग कर रहा हूं और ऐसी कोई सीमा नहीं थी। क्या क्लाइंट प्रॉक्सी से या सर्वर से अपवाद हटा दिया गया है? –

4

MaxReceivedMessageSize परिवर्तन App.config फ़ाइल में या सेवा की विधि को कॉल करने से पहले स्रोत कोड में किया जा सकता है।

BasicHttpBinding httpBinding = youAddWebServiceName.ChannelFactory.Endpoint.Binding as BasicHttpBinding; 
httpBinding.MaxReceivedMessageSize = int.MaxValue; 
+0

यह बेहद सहायक था। धन्यवाद। – Serinus

4

शायद यह किसी की मदद कर सकता है। मुझे एएसएमएक्स वेब सेवा में एक ही त्रुटि संदेश मिलता है लेकिन यह सर्वर से नहीं है! यह क्लाइंट से था और मैं इसे क्लाइंट कॉन्फ़िगरेशन में जोड़ता हूं:

<basicHttpBinding> 
<binding name="BindingName" maxBufferPoolSize="20000000" maxReceivedMessageSize="20000000" maxBufferSize="20000000" /> 
</basicHttpBinding> 
संबंधित मुद्दे