2009-07-27 10 views
5

मेरे पास वर्तमान में वेबएचटीपी बाइंडिंग के साथ एक डब्ल्यूसीएफ सेवा है, मैं अधिकतम आकार को बढ़ाने का प्रयास कर रहा हूं जिसे कॉन्फ़िगरेशन में डिफ़ॉल्ट सेटिंग्स ओवरराइड करके सेवा में इनपुट किया जा सकता है, मैंने कुछ ऐसा करने की कोशिश की हैडब्ल्यूसीएफ वेब के लिए अधिकतम संदेश और बफर आकार सेट करना

<system.serviceModel> 
<bindings> 
<webHttpBinding> 
    <binding name="webHttp" > 
    <security mode="Transport"> 
     <transport clientCredentialType = 
      "None" 
      proxyCredentialType="None" 
      realm="string" /> 
    </security> 
    </binding> 

</webHttpBinding> 
</bindings> 
<services> 

    <service name="PrimeStreamInfoServices.Service1" behaviorConfiguration="PrimeStreamInfoServices.Service1Behavior"> 
    <!-- Service Endpoints --> 
    <endpoint address="" binding="webHttpBinding" contract="PrimeStreamInfoServices.IService1"> 
     <!-- 
      Upon deployment, the following identity element should be removed or replaced to reflect the 
      identity under which the deployed service runs. If removed, WCF will infer an appropriate identity 
      automatically. 
     --> 
    </endpoint> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 
    </service> 
</services> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="PrimeStreamInfoServices.Service1Behavior"> 
     <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> 
     <serviceMetadata httpGetEnabled="true"/> 
     <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
     <serviceDebug includeExceptionDetailInFaults="false"/> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<diagnostics> 

और संदेश आकार से संबंधित विभिन्न अन्य संपत्तियों लेकिन कोई भी काम करने, एक भी एक webHttp बाइंडिंग का मीटर essage आकार बदल सकते हैं लगता है की स्थापना? कोई सुझाव? धन्यवाद!

+0

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

+0

अभी संपादित किया गया है, इसे जांचें – Daniel

उत्तर

12

वहाँ अपनी सेटिंग के आधार एक प्रभाव हो सकता है सेटिंग्स की एक भीड़ है - इस प्रयास करें:

<bindings> 
    <webHttpBinding> 
    <binding name="LargeWeb" 
      maxBufferPoolSize="1500000" 
      maxReceivedMessageSize="1500000" 
      maxBufferSize="1500000"> 
     <readerQuotas 
      maxArrayLength="656000" 
      maxBytesPerRead="656000" 
      maxDepth="32" 
      maxNameTableCharCount="656000" 
      maxStringContentLength="656000" 
      /> 
    </binding> 
    </webHttpBinding> 
</bindings> 

अपने WebHttpBinding की "संस्करण" को परिभाषित करने और उच्च मूल्यों के लिए उन सभी मानकों की स्थापना करके, आप होना चाहिए किसी भी संदेश आकार (लगभग) के माध्यम से प्राप्त करने में सक्षम।

आपको याद है: यह आपके सिस्टम को विशाल संदेशों के साथ बाढ़ की संभावना के लिए खोलता है और इस प्रकार अपने घुटनों (क्लासिक इनकार ऑफ सर्विस आक्रमण) में लाया जाता है - यही वजह है कि ये सीमाएं काफी कम हैं - डिजाइन और उद्देश्य से।

आप उन्हें उच्च मूल्यों में बदल सकते हैं - बस जागरूक रहें कि आप क्या कर रहे हैं और सुरक्षा जोखिम क्या हैं, यदि आप करते हैं!

मार्क

पुनश्च:

<client> 
    <endpoint address="http://localhost" 
      binding="webHttpBinding" bindingConfiguration="LargeWeb" 
      contract="IMyService" /> 
</client> 
<services> 
    <service> 
    <endpoint address="http://localhost" 
       binding="webHttpBinding" bindingConfiguration="LargeWeb" 
       contract="IMyService" /> 
    </service> 
</services> 
+0

यह काम नहीं करता है, यह मुझे 64k से भी बड़ा कुछ भी भेजने नहीं देगा – Daniel

+0

क्या आप अपनी कॉन्फ़िगरेशन दिखा सकते हैं? क्या आपने इस बाध्यकारी विन्यास का संदर्भ दिया है? –

+0

हां मुझे एहसास हुआ कि यह मेरी समस्या थी, मैंने अभी तक पूरी कॉन्फ़िगरेशन को जोड़ा है, हालांकि जब मैं बाध्यकारी कॉन्फ़िगरेशन विशेषता डालता हूं तो मुझे अपवाद मिलता है, किसी कारण से – Daniel

0

स्थापना मैक्स संदेश और आकार बफ़र: आदेश इन सेटिंग्स का उपयोग करने के, निश्चित रूप से आप का संदर्भ है कि आपके सर्वर और क्लाइंट साइड कॉन्फ़िगरेशन में बाध्यकारी विन्यास करने के लिए है में डब्ल्यूसीएफ रेस्ट सेवाओं के लिए वेबhttpbinding

<bindings> 
    <webHttpBinding> 
    <binding maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"> 
     <readerQuotas maxDepth="200" maxStringContentLength="83886089" maxArrayLength="163841" maxBytesPerRead="2147483647" maxNameTableCharCount="16384"/> 
    </binding> 
    </webHttpBinding> 
</bindings> 
संबंधित मुद्दे