2014-11-03 12 views
5

मैं WCF सेवा है, और मैं एक विधि है जब मैं पैरामीटर के रूप में बड़ा स्ट्रिंग (1mb से अधिक)(413) अनुरोध इकाई बहुत बड़ी

मैं इस WCF चलाने के लिए और WCF टेस्ट ग्राहक मैं के रूप में विन्यास बदल में पास करना चाहते हैं नीचे दिखाया गया है:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.serviceModel> 
     <bindings> 
      <basicHttpBinding> 
       <binding name="BasicHttpBinding_IMyService" sendTimeout="00:05:00" 
        maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"> 
        <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
         maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
       </binding> 
      </basicHttpBinding> 
     </bindings> 

और जब मैं इस विधि का आह्वान करने का प्रयास करता हूं तो मेरे पास अभी भी 413 अनुरोध इकाई बहुत बड़ी है।

+3

क्या आप इसे * दोनों * सिरों पर बदल सकते हैं? सर्वर और ग्राहक? –

+1

मैं ग्राहक को जोड़ा गया: <बाध्यकारी नाम = "BasicHttpBinding_IMyService" maxBufferPoolSize = "2147483647" maxReceivedMessageSize = "2147483647"> लेकिन मैं अभी भी यह एक ही त्रुटि – Robert

उत्तर

4

मैट बर्लैंड के सुझाव के अनुसार, आपको सेवा के अंत के साथ-साथ ग्राहक को कॉन्फ़िगर करने की आवश्यकता है। विवरण के लिए Configuring Services Using Configuration Files देखें। यह तार तार के ग्राहक अंत में आपके द्वारा किए गए कार्यों से बहुत अलग नहीं है। उपर्युक्त लेख से यहां एक अंश दिया गया है।

डब्ल्यूसीएफ सिस्टम का उपयोग करता है। .NET फ्रेमवर्क की कॉन्फ़िगरेशन कॉन्फ़िगरेशन सिस्टम। विजुअल स्टूडियो में किसी सेवा को कॉन्फ़िगर करते समय, सेटिंग निर्दिष्ट करने के लिए Web.config फ़ाइल या App.config फ़ाइल का उपयोग करें। कॉन्फ़िगरेशन फ़ाइल नाम की पसंद होस्टिंग पर्यावरण द्वारा आपके द्वारा चुने गए वातावरण द्वारा निर्धारित की जाती है। यदि आप अपनी सेवा होस्ट करने के लिए आईआईएस का उपयोग कर रहे हैं, तो Web.config फ़ाइल का उपयोग करें। यदि आप किसी अन्य होस्टिंग वातावरण का उपयोग कर रहे हैं, तो App.config फ़ाइल का उपयोग करें।

मैं int.MaxValue के लिए सब कुछ की स्थापना नहीं करने का सुझाव के रूप में 2GB करने के लिए एक MaxReceivedMessageSize सेट डॉस (डिनायल ऑफ़ सर्विस) के दौरे और की तरह करने के लिए आप खुल जाता है जाएगा। MaxReceivedMessageSize संपत्ति की टिप्पणी अनुभाग भी कहा गया है:

संदेश जो सेवाओं WSHttpBindingBase का उपयोग करके तार पर प्राप्त किया जा सकता का आकार स्मृति की राशि प्रत्येक संदेश के लिए आवंटित से घिरा है। यह संदेश आकार पर बाध्य है सेवा (डीओएस) हमलों से इनकार करने के लिए सीमित जोखिम का इरादा है।

आप शायद इस बिंदु पर काम करने की कोशिश कर रहे हैं, लेकिन इसे इस तरह से छोड़ने की अनुशंसा से बहुत दूर है।

4

मुझे भी एक ही समस्या का सामना करना पड़ा और समस्या हल हो गई। कार्य कोड-

(413) Request Entity Too Large in WCF app.config कोड का पालन करें। यह काम कर रहा है और इसका उपयोग करके मैं बड़ी फ़ाइल

<bindings> 
    <webHttpBinding> 
     <binding name="myBinding" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" transferMode="Streamed" > 
      <readerQuotas maxDepth="64" maxArrayLength="2147483647" maxStringContentLength="2147483647"/> 
     </binding> 
    </webHttpBinding> 
</bindings> 
<services> 
    <service behaviorConfiguration="ForecastREST_API.RESTServiceImplBehavior" name="ForecastREST_API.RestServiceImpl"> 
     <endpoint address="http://localhost:59624/RestServiceImpl.svc" binding="webHttpBinding" contract="ForecastREST_API.IRestServiceImpl" behaviorConfiguration="Web" bindingConfiguration="myBinding"> 
      </identity> 
     </endpoint> 
     <endpoint address="mex" binding="webHttpBinding" contract="IMetadataExchange"/> 
    </service> 
</services> 
<behaviors> 
    <endpointBehaviors> 
     <behavior name="Web"> 
      <dataContractSerializer maxItemsInObjectGraph="2147483647" /> 
      <webHttp defaultOutgoingResponseFormat="Json" automaticFormatSelectionEnabled="true" /> 
      <dispatcherSynchronization asynchronousSendEnabled="true" /> 
     </behavior> 
    </endpointBehaviors> 
    <serviceBehaviors> 
     <behavior name="ForecastREST_API.RESTServiceImplBehavior"> 
      <dataContractSerializer maxItemsInObjectGraph="2147483647" /> 
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="false" /> 
     </behavior> 
    </serviceBehaviors> 
</behaviors> 
+0

लिंक केवल जवाब – Eldho

+0

@Eldho हतोत्साहित किया जाता है मैं भी काम कर कोड को शामिल किया है मिलता है। –

+0

क्षमा करें, कुछ और ने – Eldho

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