2009-06-22 19 views
17

मैं वीएसटीएस 2008 + सी # + नेट 3.0 का उपयोग कर रहा हूं। मैं स्वयं-होस्टेड डब्ल्यूसीएफ का उपयोग कर रहा हूं। निम्नलिखित कथन को निष्पादित करते समय, निम्न बाध्यकारी त्रुटि नहीं मिली है। मैंने अपनी पूरी ऐप.कॉन्फिग फ़ाइल पोस्ट की है, कोई विचार गलत है?डब्ल्यूसीएफ बाध्यकारी त्रुटि नहीं मिली?

ServiceHost host = new ServiceHost(typeof(MyWCFService)); 
त्रुटि संदेश

,

Configuration binding extension 'system.serviceModel/bindings/MyBinding' could not be found. Verify that this binding extension is properly registered in system.serviceModel/extensions/bindingExtensions and that it is spelled correctly. 

पूर्ण app.config,

<?xml version="1.0"?> 
<configuration> 
    <system.serviceModel> 
    <bindings> 
     <wsHttpBinding> 
     <binding name="MyBinding" 
      closeTimeout="00:00:10" 
      openTimeout="00:00:20" 
      receiveTimeout="00:00:30" 
      sendTimeout="00:00:40" 
      bypassProxyOnLocal="false" 
      transactionFlow="false" 
      hostNameComparisonMode="WeakWildcard" 
      maxReceivedMessageSize="100000000" 
      messageEncoding="Mtom" 
      proxyAddress="http://foo/bar" 
      textEncoding="utf-16" 
      useDefaultWebProxy="false"> 
      <reliableSession ordered="false" 
       inactivityTimeout="00:02:00" 
       enabled="true" /> 
      <security mode="Transport"> 
      <transport clientCredentialType="Digest" 
       proxyCredentialType="None" 
       realm="someRealm" /> 
      </security> 
     </binding> 
     </wsHttpBinding> 
    </bindings> 
    <services> 
     <service name="MyWCFService" 
       behaviorConfiguration="mexServiceBehavior"> 
     <host> 
      <baseAddresses> 
      <add baseAddress="http://localhost:9090/MyService"/> 
      </baseAddresses> 
     </host> 
     <endpoint address="" binding="MyBinding" contract="IMyService"/> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="mexServiceBehavior"> 
      <serviceMetadata httpGetEnabled="True"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration> 

अग्रिम धन्यवाद, जॉर्ज

उत्तर

23

आप गलत समझा बाइंडिंग को कॉन्फ़िगर कैसे है - अपने बंधन एंडपॉइंट में एक ज्ञात प्रोटोकॉल होना चाहिए; जिस तरह से George2 है -

<endpoint address="" binding="wsHttpBinding" contract="IMyService"/> 

एक बार जब आप है कि आप तो बाध्यकारी विन्यास आपको लगता है कि प्रोटोकॉल bindingConfiguration तत्व का उपयोग इस प्रकार

<endpoint address="" binding="wsHttpBinding" 
    bindingConfiguration="MyBinding" contract="IMyService"/> 
+1

+1 हाँ के लिए सेटिंग्स के भीतर परिभाषित किया है निर्दिष्ट कर सकते हैं, कि कारण है "माई बाइंडिंग" का उपयोग करना इस तरह है कि उस नाम से एक पूर्ण बाइंडिंग (केवल बाध्यकारी कॉन्फ़िगरेशन नहीं) थी। –

+0

कूल! हल किया! लेकिन जब आपकी टिप्पणियां लागू होती हैं तो मैं एक नए मुद्दे से मुलाकात करता हूं और नया मुद्दा मैक्स बाइंडिंग मुद्दे के बारे में है। मैंने यहां पोस्ट किया है, एक विचार क्या गलत है? http://stackoverflow.com/questions/1026149/mex-binding-error-in-wcf – George2

+0

धन्यवाद marc_s! // पूरी तरह से प्रौद्योगिकी को समझने के लिए मेरी गलती। मैंने मैक्स के बारे में एक संबंधित मुद्दा पोस्ट किया है (एक नई समस्या के रूप में, मैं एक नया धागा स्पष्ट होना शुरू करता हूं), अगर आप एक नज़र डाल सकते हैं तो सराहना करें, http://stackoverflow.com/questions/1026149/mex- बाइंडिंग -error-in-wcf – George2

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