2009-02-19 17 views

उत्तर

2

कोई अधिकतम नहीं है। आप जितना चाहें उतना हो सकते हैं, AFAIK।

हालांकि, यह व्यावहारिक है या नहीं, यह एक अलग मुद्दा है। यदि आपके पास एक अनुबंध पर बहुत अधिक विधियां हैं तो यह काफी कमजोर हो जाएगा।

7

हालांकि अधिकतम नहीं है, आप Metadata Exchange के साथ समस्याओं में भाग ले सकते हैं - और निम्न कॉन्फ़िगरेशन मान और यह डिफ़ॉल्ट है: maxNameTableCharCount

एक मौजूदा कार्य कर WCF Service के लिए एक नया समारोह जोड़ने का प्रयास जबकि, मैं जबकि करने के लिए "अद्यतन सेवा संदर्भ" कोशिश कर के सामने समस्या आई - maxNameTableCharCount भी mex हस्तांतरण के आकार को संभालने के लिए छोटे होने का डिफ़ॉल्ट मान से संबंधित।

सर्वर कॉन्फ़िगरेशन के भीतर कस्टम mex binding जोड़कर Metadata Exchange के लिए डिफ़ॉल्ट मानों को ओवरराइड करना संभव है।

जब आप यदि config मूल्य से अधिक है जोड़ सकते हैं या आपकी सेवा संदर्भ अद्यतन करने के लिए कोशिश नीचे की तरह एक त्रुटि संदेश देख सकते हैं:

अधिकतम nametable वर्ण को कोटा (16384) को पार कर गया है, जबकि पढ़ने एक्सएमएल डेटा। नाममात्र एक डेटा संरचना है जो एक्सएमएल प्रसंस्करण के दौरान सामने आने वाली स्टोर स्ट्रिंग्स - लंबे एक्सएमएल दस्तावेज गैर-दोहराने वाले तत्वों के नाम, विशेषता नाम और विशेषता मान इस कोटा को ट्रिगर कर सकती है। XML पाठक बनाने के दौरान उपयोग किए गए XmlDictionaryReaderQuotas ऑब्जेक्ट पर MaxNameTableCharCount प्रॉपर्टी को बदलकर इस कोटा को बढ़ाया जा सकता है। लाइन 1, स्थिति 332845.

सर्वर मेक्स अंतिम बिंदुओं के रूप में निम्नानुसार निर्दिष्ट किया जाना चाहिए:

<endpoint address="mex" 
      binding="customBinding" 
      contract="IMetadataExchange" 
      name="" 
      bindingConfiguration="customMex" 
      listenUriMode="Explicit" /> 

एक कस्टम बाध्यकारी रूप में निर्दिष्ट किया ब्लॉक के साथ इस प्रकार है:

<customBinding> 
    <binding name="customMex"> 
     <textMessageEncoding> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
         maxArrayLength="2147483647" maxBytesPerRead="2147483647" 
         maxNameTableCharCount="2147483647" /> 
     </textMessageEncoding> 
     <httpTransport transferMode="Buffered" maxReceivedMessageSize="2147483647" 
         maxBufferSize="2147483647"/> 
    </binding> 
</customBinding> 

यदि आप मदद कर सकते हैं ' एक सेवा पर कई तरीकों के साथ मुद्दों में भाग ले रहे हैं।

+1

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

+0

आप बिल्कुल सही हैं, क्लाइंट कॉन्फ़िगरेशन को किसी भी संबंधित कॉन्फ़िगरेशन की आवश्यकता नहीं है। मैंने अब पोस्ट को संशोधित किया है, धन्यवाद। – Tanner

+0

मुझे इस विधि के बाद कोई सफलता नहीं मिली है। मैं अपनी सेवा के लिए netTcp बाध्यकारी का उपयोग कर रहा हूँ। मेरे पास http अक्षम है, और इसलिए मैंने httpTransport के बजाय tcptransport निर्दिष्ट किया है। लेकिन यह तब भी विफल रहता है जब मेरे पास बड़ी संख्या में ऑपरेशन कॉन्ट्रैक्ट्स होते हैं। क्या कोई भी इनपुट प्रदान कर सकता है? –

0

व्यावहारिक सीमा शायद 10-12 से अधिक तरीकों से नहीं है। इससे भी अधिक और आप शायद एक घटक के संचालन का वर्णन नहीं कर रहे हैं। मैं कई घटकों में दर्जनों संचालन के साथ किसी भी घटक को दोबारा करने के लिए वास्तव में कड़ी मेहनत करूँगा।

उसने कहा, मुझे यकीन है कि अपवाद हैं!

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