2010-10-06 9 views
11

द्वारा लागू अनुबंधों की सूची में नहीं पाया जा सका, मैंने इस त्रुटि के समाधान के लिए वेब खोजा है, लेकिन मुझे जो कुछ भी मिला है, वह बताता है कि मेरे पास क्या सही है।IMetaDataExchange सेवा

शायद कोई एक स्पष्ट गलती देख सकता है और एक स्पष्ट गलती देख सकता है जिसे मैं नहीं देख सकता।

मैं एक खिड़कियों सेवा है, दो ठेके की मेजबानी:

  1. IConfigurationService
  2. IConfigurationAdminService

व्यवस्थापक सेवा मानक सेवा से विरासत के रूप में मैं दोनों ठेके बुनियादी तरीके को लागू करना चाहते हैं।

समस्या यह है कि मैं सेवाओं को ठीक से होस्ट कर सकता हूं, जब तक कि मैं कोशिश नहीं करता और एक मेक्स जोड़ता हूं।

अनुबंध नाम 'IMetaDataExchange' सेवा 'ConfigurationWCFService' द्वारा कार्यान्वित अनुबंध की सूची में नहीं पाया जा सका:

तो मैं निम्न अपवाद मिलता है।

और यह मेरी कॉन्फ़िगरेशन है, सबकुछ कॉन्फ़िगर द्वारा कॉन्फ़िगर किया गया है, कोड के माध्यम से कुछ भी नहीं किया गया है।

<system.serviceModel> 
    <bindings> 
     <netTcpBinding> 
     <binding name="tcpBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"> 
      <readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" /> 
      <security mode="None" /> 
     </binding> 
     </netTcpBinding> 
    </bindings> 
    <services> 
     <service behaviorConfiguration="serviceBehavior" name="BrightsideGroup.Repa.Configuration.ConfigurationWCFService"> 
     <endpoint address="ConfigurationService" binding="netTcpBinding" 
      bindingConfiguration="tcpBinding" name="tcpConfiguration" contract="BrightsideGroup.Repa.Configuration.IConfigurationWCFService" /> 
     <endpoint binding="mexHttpBinding" address="mex" name="mex" contract="IMetaDataExchange" /> 
     <host> 
      <baseAddresses> 
      <add baseAddress="net.tcp://GD01316:9123/Repa" /> 
      <add baseAddress="http://GD01316:8123/Repa" /> 
      </baseAddresses> 
     </host> 
     </service> 
     <service behaviorConfiguration="serviceBehavior" name="BrightsideGroup.Repa.Configuration.ConfigurationWCFAdminService"> 
     <endpoint address="ConfigurationAdminService" binding="netTcpBinding" 
      bindingConfiguration="tcpBinding" name="tcpConfigurationAdmin" 
      contract="BrightsideGroup.Repa.Configuration.IConfigurationAdminWCFService" /> 
     <endpoint binding="mexHttpBinding" address="mex" name="mex" contract="IMetaDataExchange" /> 
     <host> 
      <baseAddresses> 
      <add baseAddress="net.tcp://GD01316:9124/Repa" /> 
      <add baseAddress="http://GD01316:8124/Repa" /> 
      </baseAddresses> 
     </host> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="serviceBehavior"> 
      <serviceMetadata httpGetEnabled="true" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 

उत्तर

12

आप आवरण गलत है - WCF विन्यास केस-संवेदी

<endpoint address="mex" 
       binding="mexHttpBinding" 
       contract="IMetadataExchange" /> 

ध्यान दें कि 'डी' IMetadataExchange में बड़े अक्षरों में नहीं है आप दोगुना syntax on MSDN की जांच कर सकते है।

+0

धन्यवाद। मुझे पता था कि यह कुछ आसान होना था !! पेड़ के लिए जंगल नहीं देखता !! धन्यवाद। – jimplode

2

मुझे आशा है कि following link आपको सहायता प्रदान कर सकता है।

और भी निम्न जोड़ने का प्रयास करें:

<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/> 
+0

जैसा कि पहले से ही प्रश्न का उत्तर दिया गया है, के रूप में चिह्नित किया गया है, और यह काम नहीं करेगा क्योंकि यह गलत प्रोटोकॉल है, मैं http का उपयोग कर रहा हूं, net.tcp नहीं। – jimplode

+3

चूंकि मैंने मूल पते में net.tcp के लिए एक प्रविष्टि देखी है, इसलिए मुझे लगता है कि आप इसका भी उपयोग कर रहे हैं। साथ ही, जब तक मैंने सवाल का जवाब दिया, मुझे किसी अन्य उत्तर के अस्तित्व के बारे में सतर्कता नहीं मिली। धन्यवाद। –

6

मैं सभी के लिए NetTcpBinding उपयोग कर रहा हूँ। मेरे मामले में मैं एक ही समस्या हो रही है और जोड़कर हल किया गया था:

(क) एक behaviourConfiguration = "" MEX समाप्ति बिंदु को

<endpoint address="mex" 
      binding="mexTcpBinding" 
      contract="IMetadataExchange" 
      behaviourConfiguration="" /> 

(ख) एक behaviourConfiguration = "सेवा करने के लिए MEX" परिभाषा:

<services> 
    <service name="AcmeService" behaviourConfiguration="mex"> 

(ग) व्यवहार प्रविष्टि

<behaviors> 
    <serviceBehaviors> 
     <behaviour name="mex"> 
      <serviceDebug includeExceptionDetailInFaults="false"/> 
      <serviceMetadata /> 
     </behavior> 
    </serviceBehaviors> 
</behaviors> 
संबंधित मुद्दे