2013-04-19 11 views
5

मैं इस समस्या को खोज रहा हूं, और मुझे अन्य उपयोगकर्ताओं द्वारा पोस्ट की गई समान समस्याएं मिलीं, लेकिन मैंने जो कुछ भी कोशिश की है वह काम नहीं करती है, समस्या यह है कि मैं होस्ट की गई डब्ल्यूसीएफ सेवा का उपयोग कर रहा हूं आईआईएस पर, और एक क्लाइंट जो एक स्ट्रिंग पर क्रमबद्ध छवि अपलोड करने का प्रयास करता है, छवि का आकार 9 एमबी एप्रोक्स है, हर कोई ठीक काम करता है, मैं छवि को छोड़कर समस्या के बिना डेटा भेज सकता हूं।डब्ल्यूसीएफ सेवा त्रुटि 400 खराब अनुरोध

मैं tracelog सक्षम किया है और त्रुटि संदेश दर्शाता है MaxReceivedMessageSize से अधिक है कि

यहाँ सेवा पर मेरे config है:

<system.diagnostics> 
<sources> 
    <source name="System.ServiceModel" 
     switchValue="Information, ActivityTracing" 
     propagateActivity="true" > 
     <listeners> 
      <add name="xml"/> 
     </listeners> 
    </source> 
    <source name="System.ServiceModel.MessageLogging"> 
     <listeners> 
      <add name="xml"/> 
     </listeners> 
    </source> 
    <source name="myUserTraceSource" 
     switchValue="Information, ActivityTracing, All"> 
     <listeners> 
      <add name="xml"/> 
     </listeners> 
    </source> 
</sources> 
<trace autoflush="true" /> 
<sharedListeners> 
    <add name="xml" 
     type="System.Diagnostics.XmlWriterTraceListener" 
     initializeData="ErrorSvcLog.svclog" /> 
</sharedListeners> 
</system.diagnostics> 

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="BasicHttpBinding_IServicioSalud" closeTimeout="10:01:00" 
       maxBufferSize="2147483647" maxBufferPoolSize="2147483647" 
       maxReceivedMessageSize="2147483647" openTimeout="10:01:00" 
       receiveTimeout="10:10:00" sendTimeout="10:01:00" 
       messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"> 
       <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
        maxArrayLength="2147483647" maxBytesPerRead="2147483647" 
        maxNameTableCharCount="2147483647" /> 
      </binding> 
     </basicHttpBinding> 
</bindings> 
<services> 
    <service behaviorConfiguration="ServiceBehavior" name="ServicioSalud"> 
     <endpoint address="" binding="basicHttpBinding" contract="IServicioSalud" /> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    </service> 
</services> 
<behaviors> 
    <serviceBehaviors> 
     <behavior name="ServiceBehavior"> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
      <dataContractSerializer maxItemsInObjectGraph="200000" /> 
     </behavior> 
    </serviceBehaviors> 
</behaviors> 
<diagnostics> 
    <messageLogging 
     logEntireMessage="true" 
     logMalformedMessages="false" 
     logMessagesAtServiceLevel="true" 
     logMessagesAtTransportLevel="false" 
     maxMessagesToLog="3000" 
     maxSizeOfMessageToLog="2000"/> 
</diagnostics> 
</system.serviceModel> 
</configuration> 

और ग्राहक config

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="BasicHttpBinding_IServicioSalud" closeTimeout="10:01:00" 
       openTimeout="10:01:00" receiveTimeout="10:10:00" sendTimeout="10:01:00" 
       allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" 
       maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" 
       messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" 
       useDefaultWebProxy="true" 
       <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" 
        maxBytesPerRead="4096" maxNameTableCharCount="2147483647" /> 
       <security mode="None"> 
        <transport clientCredentialType="None" proxyCredentialType="None" 
         realm="" /> 
        <message clientCredentialType="UserName" algorithmSuite="Default" /> 
       </security> 
      </binding> 
     </basicHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="http://xxx.xxx.x.xxx:xxxx/wcfservicesalud/Service.svc" 
      binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IServicioSalud" 
      contract="IServicioSalud" name="BasicHttpBinding_IServicioSalud" /> 
    </client> 
</system.serviceModel> 
+0

आपको 'बाध्यकारी कॉन्फ़िगरेशन' विशेषता के माध्यम से परिभाषित बाध्यकारी कॉन्फ़िगरेशन (BasicHttpBinding_IServicioSalud) पर सेवा समापन बिंदु सेट करने की आवश्यकता है। – Tim

उत्तर

4

अपने कॉन्फ़िग फ़ाइल में आपने बाध्यकारी कॉन्फ़िगरेशन को आपके द्वारा नहीं बनाया है, इसलिए BasicHttpBinding के लिए डिफ़ॉल्ट मान का उपयोग किया जा रहा है। के रूप में सेवा बड़े डेटा स्वीकार करने के लिए निर्धारित करने की आवश्यकता

<endpoint address="" bindingConfiguration="BasicHttpBinding_IServicioSalud" binding="basicHttpBinding" contract="IServicioSalud" /> 

आपकी सेवा config के लिए ऐसा करें,: आप स्पष्ट रूप से बाध्यकारी आप अपने समाप्ति बिंदु को (BasicHttpBinding_IServicioSalud) में परिभाषित किया गया इस तरह, असाइन करना होगा।

+0

धन्यवाद! मैं इस समस्या को हल करने की कोशिश कर रहा था मेरे सिर तोड़ रहा था। – MaxJRB

+0

@MaxJRB - आपका स्वागत है। मैं खुशी से मदद कर सकता है। – Tim

0

यह मेरा संस्करण है। सुनिश्चित करें कि आपके पास बाध्यकारी कॉन्फ़िगरेशन आपकी इच्छित सेवा में निर्दिष्ट है। मेरे मामले में मुझे BasicHttp बाइंडिंग नाम निर्दिष्ट करना होगा।

<bindings> 
    <basicHttpBinding> 
    <binding name="basicHttpBinding" maxBufferSize="64000000" maxReceivedMessageSize="64000000" maxBufferPoolSize="64000000"> 
     <readerQuotas maxDepth="64000000" maxStringContentLength="64000000" maxArrayLength="64000000" maxBytesPerRead="64000000" /> 
     <security mode="None"/> 
    </binding> 
    </basicHttpBinding> 
</bindings> 


<services> 
     <service behaviorConfiguration="WS.Service1Behavior" name="WS.EasyStockWS"> 
     <endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicHttpBinding" contract="WS.IEasyStockWS"> 
      <identity> 
      <dns value="localhost" /> 
      </identity> 
     </endpoint> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
     </service> 
</services> 
0

मेरे लिए, कारण यह था कि मेरे अनुरोध में मैंने सामग्री प्रकार निर्धारित नहीं किया था।

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