2009-11-10 19 views
7

मैं एक WCF सेवा (Windows सेवा, नहीं IIS में आयोजित) कॉल करने के लिए कोशिश कर रहा हूँ और निम्न त्रुटि हो रही है:WCF अधिकतम संदेश आकार कोटा

The maximum message size quota for incoming messages has been exceeded for the remote channel. See the server logs for more details.

मैं कोशिश की है MaxReceivedMessageSize और ReaderQuotas बढ़ती बिना किसी किस्मत के अपने अधिकतम मूल्यों के लिए।

मैंने लॉगिंग चालू कर दी है और मैसेज आकार की जांच की है जिसे "भेजा गया" हो रहा है। यह निश्चित रूप से अधिकतम के पास कहीं भी नहीं है। हम 372 केबी एक्सएमएल में क्रमबद्ध ऑब्जेक्ट भेजने के बारे में बात कर रहे हैं।

दो सवाल:

  1. किसी को भी पता है क्या "सर्वर लॉग" संदेश के लिए बात कर रहा है? मैंने EventViewer की जांच की है लेकिन कुछ भी नहीं दिखाता है ...

  2. क्या कोई जानता है कि अन्य कॉन्फ़िगरेशन सेटिंग यहां क्या लागू हो सकती हैं?

उत्तर

5

आपके प्रश्न ने मुझे शॉन वाइल्डर्मथ द्वारा ब्लॉग पोस्ट की याद दिला दी, जहां उन्हें सिल्वरलाइट एप्लिकेशन में बड़े संदेश आकारों में परेशानी हो रही थी। शायद यह तुम बाहर में मदद मिलेगी:

http://wildermuth.com/2009/09/10/Using_Large_Message_Requests_in_Silverlight_with_WCF

शॉन कहते हैं:

The trick is to change the customBinding in the web.config to use larger defaults. I picked 2MB as it its a reasonable size. Of course setting them to 2GB like shown above will work but it does leave you more vulnerable to attacks. Pick a size that isn't larger than your largest request but isn't overly large. Its a guessing game. To set these, you need to add them to your web.config is to put them on the httpTransport node:

+0

धन्यवाद! यह आलेख वास्तव में सहायक था। – manu08

1

मुझे लगता है कि सर्वर लॉग का मतलब है कि जब आप इसे चालू करते हैं तो ट्रेसिंग और लॉगिंग फाइलें बनाई जाती हैं। यहां MSDN link है।

गुण जो मैं डब्ल्यूसीएफ के साथ चलाता हूं, जिनके लिए मैं लिखने वाले अनुप्रयोगों में उच्च मूल्य रखने की आवश्यकता है, वे अधिकतम हैं, मैसेज साइज, maxStringContentLength, maxArrayLength और maxBufferSize। उन्हें बढ़ाने की कोशिश करें और देखें कि क्या होता है। डब्ल्यूसीएफ को डीबग करने का दर्द हो सकता है क्योंकि यह अपवादों को निगलने का शौक है।

1

आप सर्वर लॉग और आवेदन config में पथ के रूप में

<system.diagnostics> 
    <trace autoflush="true" /> 
    <sources> 
     <source name="System.ServiceModel" 

        switchValue="Critical, Error, Warning" 
       > 
     <listeners> 
      <add name="traceListener" 
         type="System.Diagnostics.XmlWriterTraceListener" 
         initializeData="F:\log-data\ServiceTrace.svclog" 
      /> 
     </listeners> 
     </source> 
    </sources> 

    </system.diagnostics> 
+1

मैंने इस कॉन्फ़िगरेशन आइटम को मेरे सेवा एप्लिकेशन में जोड़ा है और लॉग फ़ाइल प्राप्त कर रहा हूं। हालांकि, यह बस उस संदेश को भेजता है जो उड़ाता है। यह वास्तविक त्रुटि या चीज के बारे में कुछ भी नहीं दिखाता है। – manu08

0

दो बातें इस प्रकार निर्दिष्ट कर सकते हैं:

  • क्या आप हमें सर्वर और क्लाइंट साइड कॉन्फ़िगरेशन दिखा सकते हैं (केवल प्रासंगिक अनुभाग - एंडपॉइंट्स, बाइंडिंग कॉन्फ़िगरेशन)

  • क्या आपने दोनों पक्षों (क्लाइंट और सर्वर) पर मानों को बदल दिया है ??

वहाँ आकार सेटिंग्स आप प्रभावित कर सकते हैं की एक पूरी अधिकता है ....

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