2011-05-15 9 views
8

मैं इस साइट पर कई उदाहरणों के बाद, डब्ल्यूसीएफ सेवा में बाइनरी संदेश एन्कोडिंग का उपयोग करने का प्रयास कर रहा हूं।सर्वर पर बाइनरी http बाध्यकारी सक्रिय नहीं कर सकता

सर्वर मैं इतना के रूप में घोषित बंधन है पर:

<customBinding> 
    <binding name="binaryHttpBinding"> 
     <binaryMessageEncoding maxReadPoolSize="4096000" maxSessionSize="4096000" maxWritePoolSize="4096000"> 
      <readerQuotas maxDepth="32" maxStringContentLength="4096000" 
      maxArrayLength="4096000" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
     </binaryMessageEncoding> 
     <httpTransport maxBufferPoolSize="4096000" maxBufferSize="4096000" maxReceivedMessageSize="4096000"/> 
    </binding> 
</customBinding> 

सेवा के लिए इसका इस्तेमाल करने के लिए सेट कर दिया जाता है (मेरे विचार):

<service behaviorConfiguration="MyService.ServiceBehavior" name="MyService.ContentUploadService"> 
    <endpoint 
     address="" 
     binding="customBinding" 
     bindingConfiguration="binaryHttpBinding" 
     contract="MyService.IContentUpload" 
     name="MyService.ContentUploadService" /> 

ग्राहक एक ही घोषणाओं है:

<customBinding> 
    <binding name="binaryHttpBinding"> 
     <binaryMessageEncoding maxReadPoolSize="4096000" maxSessionSize="4096000" maxWritePoolSize="4096000"> 
      <readerQuotas maxDepth="32" maxStringContentLength="4096000" 
      maxArrayLength="4096000" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
     </binaryMessageEncoding> 
     <httpTransport maxBufferPoolSize="4096000" maxBufferSize="4096000" maxReceivedMessageSize="4096000"/> 
    </binding> 
</customBinding> 

और:

<endpoint 
    address="http://foo.com/ContentUploadService.svc" 
    binding="customBinding" 
    bindingConfiguration="binaryHttpBinding" 
    contract="MyService.IContentUpload" 
    name="MyService.ContentUploadService"/> 

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

सामग्री प्रकार आवेदन/साबुन + msbin1 पाठ की उम्मीद कर एक सेवा करने के लिए भेजा गया था/एक्सएमएल; charset = utf-8। ग्राहक और सेवा बाइंडिंग मेल नहीं खा सकते हैं।

लॉग फ़ाइल में इस त्रुटि से तुरंत पहले, यह सेवा होस्ट खोलने का प्रयास करते समय फेंक दिया गया है, जो कारण होना चाहिए।

कॉन्फ़िगरेशन मूल्यांकन संदर्भ नहीं मिला।

इस संदेश के लिए मैंने खोजे गए खोज लिंक में से कोई भी उपयोगी नहीं रहा है। तो, मैं किस मूल टुकड़े को याद कर रहा हूं?

+1

वेब.config में सेवा कॉन्फ़िगरेशन है? क्या System.ServiceModel.dll आपके सर्वर अनुप्रयोग में संदर्भित है? –

+0

हां और हां। सेवा ठीक काम करती है अगर मैं बाध्यकारी को मूल Http बाइंडिंग में बदलता हूं (जब तक कि संदेश का आकार <64K रहता है)। – David

+0

'कॉन्फ़िगरेशन मूल्यांकन संदर्भ नहीं मिला' आमतौर पर निकाल दिया जाता है यदि आप कुछ अज्ञात बाध्यकारी या व्यवहार कॉन्फ़िगरेशन का उपयोग करते हैं जो एक्सटेंशन के रूप में पंजीकृत नहीं है। सुनिश्चित करें कि आपकी कॉन्फ़िगरेशन में कोई प्रकार नहीं है। यह भी सुनिश्चित करें कि आपकी सेवा/@ नाम सही है - यह नेमस्पेस होना चाहिए। सेवा नाम जैसा कि .svc फ़ाइल में परिभाषित किया गया है। –

उत्तर

1

क्या आपने एंडपॉइंट की तारीफ करने के लिए सर्वर पर एक मेजबान स्थापित करने का प्रयास किया है?

मुझे लगता है कि यह कुछ इस तरह होगा: आपकी सेवा की तरह

<service behaviorConfiguration="MyService.ServiceBehavior" name="MyService.ContentUploadService">  
<host> 
    <baseAddresses> 
     <add baseAddress="http://foo.com/ContentUploadService.svc"/> 
    </baseAddresses> 
</host> 
<endpoint address="" binding="customBinding" indingConfiguration="binaryHttpBinding" contract="MyService.IContentUpload" name="MyService.ContentUploadService" /> 

आशा यह सहायक

1

है यह मेरे लिए लग रहा है डिफ़ॉल्ट कॉन्फ़िगरेशन उपयोग कर रहा है, जो अगर यह एक स्पष्ट नहीं मिल सकता है क्या होगा विन्यास। सुनिश्चित करें कि तत्व का नाम विशेषता वास्तव में आपकी सेवा कक्षा (नामस्थान शामिल) के पूर्ण योग्य नाम से मेल खाती है।

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