2012-09-19 14 views
8

में बहुत बड़ी अनुरोध इकाई है एचटीटीपीएस के माध्यम से मेरे पास एक स्वयं-होस्टिंग डब्ल्यूसीएफ सेवा स्वीकार करने वाले संदेश हैं।HTTP 413 स्व-होस्टिंग डब्ल्यूसीएफ सेवा

एक संदेश एक जावा अनुप्रयोग है, जो प्रतिक्रिया मिलती है से भेजा जा रहा है:

HTTP/1.1 413 Request Entity Too Large 
Content-Length: 0 
Server: Microsoft-HTTPAPI/2.0 
Date: Wed, 19 Sep 2012 09:05:34 GMT 
Connection: close 

मैं एक फ़ाइल अपलोड करने का प्रयास नहीं कर रहा हूँ बस एक XML/सोप संदेश है, जो 78kb है भेजें। मैंने अपने अधिकतम संदेश और बफर आकारों को अपनाने का प्रयास किया है लेकिन इसका कोई फायदा नहीं हुआ है।

<binding name="SecuredNoProxy" openTimeout="00:00:10" sendTimeout="00:00:10"> 
     <textMessageEncoding messageVersion="Soap11WSAddressing10" /> 
     <security includeTimestamp="true" enableUnsecuredResponse="true"> 
      <localClientSettings timestampValidityDuration="00:15:00" /> 
     </security> 
     <httpsTransport manualAddressing="false" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" allowCookies="false" bypassProxyOnLocal="true" decompressionEnabled="true" hostNameComparisonMode="StrongWildcard" keepAliveEnabled="true" realm="" transferMode="Buffered" unsafeConnectionNtlmAuthentication="false" useDefaultWebProxy="false" requireClientCertificate="true" /> 
    </binding> 

कृपया मुझे बताएं कि क्या मैं कोई अतिरिक्त जानकारी प्रदान कर सकता हूं।

WCF ट्रेस लॉग

कनेक्शन पर बाइट्स प्राप्त करें 'https: // स्थानीय होस्ट'

गतिविधि सीमा (प्रारंभ)

कनेक्शन जानकारी

एक अपवाद फेंकने (त्रुटि)

अपवाद है:

System.ServiceModel.ProtocolException, System.ServiceModel, संस्करण = 4.0.0.0, संस्कृति = तटस्थ

+0

सक्षम करें [WCF ट्रेसिंग] (http://msdn.microsoft.com/en-us/library/ms733025 (v = vs.100) .aspx) यह देखने के लिए कि संदेश डब्ल्यूसीएफ द्वारा संसाधित किया जा रहा है या नहीं। यह संदेश एचटीसी मेजबान घटक से आने जैसा दिखता है, डब्ल्यूसीएफ नलसाजी नहीं। –

+0

@ सिक्सटोएज़ - मैंने डब्ल्यूसीएफ ट्रेस लॉग जानकारी जोड़ दी है। – Fenton

उत्तर

6

जैसा कि मैंने सवाल में करने के लिए नहीं मिल पाया, यह बहुत ज्यादा से संबंधित है बाध्यकारी विन्यास के लिए। विशेष रूप से, maxReceivedMessageSize।

maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" 

यह (शायद चीजें काफी इस बड़े हालांकि बनाने के लिए नहीं के रूप में यह आप संभावित सेवा हमलों के इनकार के प्रति असुरक्षित हो जाएगा) बदलने के लिए सही क्षेत्र है। अपने वास्तविक संदेशों के आधार पर एक समझदार मूल्य निर्धारित करें।

आउटबाउंड endpoint ठीक से कॉन्फ़िगर किया गया था, लेकिन भीतर का अंतिम बिंदु नहीं था - यह था:

<httpsTransport requireClientCertificate="true" /> 

कौन सा मतलब यह 65536 का डिफ़ॉल्ट मान है, जो पर्याप्त नहीं है के लिए संदेश भेजा जा रहा उपयोग कर रहा था। तो यह वास्तव में अंतराल को सावधानी से जांचने का मामला है, खासकर अगर उन्हें समान नाम दिया जाता है।

+1

स्टीव मुझे पता है कि यह थोड़ी देर के बाद से आप इसका जवाब दे चुके हैं, लेकिन क्या आप आउटबाउंड बनाम इनबाउंड एंडपॉइंट्स के बारे में बता सकते हैं? धन्यवाद। – antscode

+1

यह सब एक धुंध है। हल्के आरईएसटी सेवाओं के लिए भलाई का शुक्र है, मुझे थोड़ी देर के लिए इस तरह की चीज़ को नहीं देखना पड़ा। इसके बावजूद, मेरा मतलब "आउटबाउंड" = "सेवा" और "इनबाउंड" = "कॉलर" (मुझे लगता है!) – Fenton

2

मेरे लिए यह system.web तहत maxRequestLength था:

<system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    <customErrors mode="Off"/> 
    <httpRuntime 
     maxRequestLength="2147483647" 
     executionTimeout="300" /> 
</system.web> 
संबंधित मुद्दे