2010-05-25 14 views
7

से अधिक हो गया है मेरी डब्ल्यूसीएफ सेवा में एक ऑपरेशन कंट्रैक्ट है जो पैरामीटर के रूप में, ऑब्जेक्ट्स की एक सरणी स्वीकार करता है। यह संभावित रूप से काफी बड़ा हो सकता है। खराब अनुरोध के लिए फिक्सेस की तलाश करने के बाद: 400, मुझे वास्तविक कारण मिला: अधिकतम संदेश आकार।आने वाले संदेशों (65536) के लिए अधिकतम संदेश आकार कोटा

मुझे पता है कि इस सवाल से कई स्थानों पर पहले पूछा गया है। मैंने कोशिश की है कि हर कोई क्या कहता है: "क्लाइंट और सर्वर कॉन्फ़िगरेशन फ़ाइलों में आकार बढ़ाएं।" मेरे पास है। यह अभी भी काम नहीं करता है।

मेरी सेवा के web.config:

<system.serviceModel> 
    <services> 
     <service name="myService"> 
     <endpoint name="myEndpoint" address="" 
        binding="basicHttpBinding" 
        bindingConfiguration="myBinding" 
        contract="Meisel.WCF.PDFDocs.IPDFDocsService" /> 
     </service> 
    </services> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="myBinding" 
       closeTimeout="00:11:00" 
       openTimeout="00:11:00" 
       receiveTimeout="00:15:00" 
       sendTimeout="00:15:00" 
       maxBufferSize="2147483647" 
       maxReceivedMessageSize="2147483647" 
       maxBufferPoolSize="2147483647" 
       transferMode="Buffered" 
       allowCookies="false" 
       bypassProxyOnLocal="false" 
       hostNameComparisonMode="StrongWildcard" 
       messageEncoding="Text" 
       textEncoding="utf-8" 
       useDefaultWebProxy="true"> 
      <readerQuotas maxDepth="2147483647" 
         maxStringContentLength="2147483647" 
         maxArrayLength="2147483647" 
         maxBytesPerRead="2147483647" 
         maxNameTableCharCount="2147483647" /> 
      <security mode="None" /> 
     </binding> 
     </basicHttpBinding> 
    </bindings> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
      <dataContractSerializer maxItemsInObjectGraph="2147483647" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 

मेरा ग्राहक के app.config:

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="BasicHttpBinding_IPDFDocsService" 
       closeTimeout="00:11:00" 
       openTimeout="00:11:00" 
       receiveTimeout="00:10:00" 
       sendTimeout="00:11: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="2147483647" 
         maxNameTableCharCount="2147483647" /> 
      <security mode="None"> 
      <transport clientCredentialType="None" 
         proxyCredentialType="None" 
         realm="" /> 
      <message clientCredentialType="UserName" 
        algorithmSuite="Default" /> 
      </security> 
     </binding> 
     </basicHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="http://localhost:8451/PDFDocsService.svc" 
       behaviorConfiguration="MoreItemsInObjectGraph" 
       binding="basicHttpBinding" 
       bindingConfiguration="BasicHttpBinding_IPDFDocsService" 
       contract="PDFDocsService.IPDFDocsService" 
       name="BasicHttpBinding_IPDFDocsService" /> 
    </client> 
    <behaviors> 
     <endpointBehaviors> 
     <behavior name="MoreItemsInObjectGraph"> 
      <dataContractSerializer maxItemsInObjectGraph="2147483647" /> 
     </behavior> 
     </endpointBehaviors> 
    </behaviors> 
    </system.serviceModel> 

मैं संभवतः क्या याद आ रही है या गलत कर रही हो सकता है? ऐसा लगता है कि सेवा maxReceivedBufferSize में जो मैंने टाइप की है उसे अनदेखा कर रहा है।

अग्रिम धन्यवाद, केली

अद्यतन

यहाँ दो अन्य StackOverflow सवाल जहां वे कभी नहीं एक जवाब प्राप्त किया, या तो कर रहे हैं:

https://stackoverflow.com/questions/2880623/maxreceivedmessagesize-adjusted-but-still-getting-the-quotaexceedexception-with

WCF MaxReceivedMessageSize property not taking

+0

यह एक नज़र में सही दिखता है। क्या आप कोड में अंत बिंदु को कहीं भी कॉन्फ़िगर कर रहे हैं? यदि ऐसा है, तो यह कॉन्फ़िगरेशन सेटिंग्स ओवरराइड हो सकता है। –

+0

आप सेवा की मेजबानी कैसे कर रहे हैं? आईआईएस? –

+0

@ जेफ: मैं सिर्फ अपने सेवा क्लाइंट का एक नया उदाहरण बना रहा हूं, फिर ऑपरेशन कंट्रैक्ट को कॉल कर रहा हूं, जो मेरे कस्टम क्लास में पैरामीटर के रूप में गुज़र रहा है। कुछ भी आकर्षक नहीं। @ सिमॉन: मैं एएसपी .NET विकास सर्वर का उपयोग कर रहा हूं। वर्तमान में, यह सब स्थानीय है। – DaleyKD

उत्तर

7

में सेवा कॉन्फ़िग फ़ाइल, "नाम" विशेषता तत्व

<behaviors> 
    <serviceBehaviors> 
    <behavior name="StackOverflow"> 

से लापता है और सेवा तत्व में इस नाम के लिए एक संदर्भ होना चाहिए:

<system.serviceModel> 
    <services> 
     <service behaviorConfiguration="StackOverflow" name="myService"> 
      <endpoint address="" binding="basicHttpBinding" bindingConfiguration="myBinding" 

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

इसके अलावा सेवा के लिए कोई एंडपॉइंट व्यवहार परिभाषित नहीं किया गया है। मुझे नहीं पता कि यह मायने रखता है या नहीं।

+0

क्या आप मुझ पर विश्वास करेंगे अगर मैंने आपको बताया कि जब मैं अपने व्यवहार में एक नाम जोड़ता हूं, तो डब्ल्यूसीएफटीएस्ट क्लाइंट मुझे त्रुटि देता है: "त्रुटि: मेटाडाटा प्राप्त नहीं कर सकता। मेटाडाटा में एक संदर्भ है जिसे हल नहीं किया जा सकता है। सामग्री प्रकार एप्लिकेशन/साबुन + xml; charset = utf-8 सेवा द्वारा समर्थित नहीं था। क्लाइंट और सेवा बाइंडिंग को मेल नहीं किया जा सकता है। दूरस्थ सर्वर ने एक त्रुटि लौटा दी: (415) असमर्थित मीडिया प्रकार। एचटीटीपी प्राप्त करें। HTML दस्तावेज़ में वेब सेवा खोज जानकारी नहीं है। " यही कारण है कि मैंने अपने व्यवहार के लिए नाम शामिल नहीं किया था। – DaleyKD

+0

मुझे अभी भी यकीन नहीं है कि इस मुद्दे का सही समाधान क्या था, लेकिन मैं इस समस्या को हल करने के लिए अपनी मूल समस्या का समाधान करने में सक्षम था। एफडब्ल्यूआईडब्ल्यू, ऐसा प्रतीत होता है कि मैं अपनी सेवा का उपयोग कर कॉन्फ़िगरेशन सुनिश्चित करने के द्वारा उपर्युक्त त्रुटि से छुटकारा पाने में सक्षम था। धन्यवाद! – DaleyKD

0

मुझे डब्ल्यूसीएफ टेस्ट के साथ एक ही समस्या थी और मैंने मूल रूप से कॉन्फ़िगरेशन फ़ाइल सेट की थी। अगर आपकी कॉन्फ़िगरेशन फ़ाइल से कोई समस्या नहीं है, तो मैं सुझाव देता हूं कि किसी अन्य प्रोग्राम के साथ सेवा का परीक्षण करने का प्रयास करें जैसे: SOAP UI, मुझे लगता है कि यह त्रुटि यह सेवा से नहीं है, यह डब्ल्यूसीएफ टेस्ट से है।

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