WCF - IMetadataExchange konnte nicht gefunden werden in der Liste der Verträge durch den Dienst implementiert

I ' V versucht zu konfigurieren, mein WCF-Dienst verfügbar machen beiden SOAP-und Json-endpoints. Aber damit scheine ich gebrochen mein MEX-Endpunkt mit dem Fehler:

System.InvalidOperationException: Der Vertrag name 'IMetadataExchange' konnte nicht gefunden werden in der Liste der Verträge durch den Dienst implementiert TestService. Fügen Sie ein ServiceMetadataBehavior, um die Konfiguration Datei oder das ServiceHost-Objekt direkt zu aktivieren der Unterstützung für diesen Vertrag.

  <configuration>
  <system.web>
    <compilation debug="true"/>
  </system.web>
  <!-- When deploying the service library project, the content of the config file must be added to the host's 
  app.config file. System.Configuration does not support config files for libraries. -->
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name ="soapBinding">
          <security mode="None"/>
        </binding>
      </basicHttpBinding>
      <webHttpBinding>
        <binding name="webBinding"/>
      </webHttpBinding>
      <mexHttpBinding>
        <binding name="mexBinding"/>
      </mexHttpBinding>
    </bindings>
    <behaviors>
      <endpointBehaviors>
        <behavior name="poxBehavior">
          <webHttp/>
        </behavior>
        <behavior name="jsonBehavior">
          <enableWebScript  />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="defaultBehavior">
          <serviceDebug includeExceptionDetailInFaults="true" />
          <serviceMetadata httpGetEnabled="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service name="TVD_WCF_Services.TestService" behaviorConfiguration="defaultBehavior">
        <host>
          <baseAddresses>
            <!-- note, choose an available port-->
            <add baseAddress="http://localhost:8732/Design_Time_Addresses/TVD_WCF_Services/TestService/" />
          </baseAddresses>
        </host>
        <endpoint address="soap" binding="basicHttpBinding" bindingConfiguration="soapBinding" contract="TVD_WCF_Services.ITestService" />
        <endpoint address="pox" binding="webHttpBinding" bindingConfiguration="webBinding" behaviorConfiguration="poxBehavior" contract="TVD_WCF_Services.ITestService" />
        <endpoint address="json" binding="webHttpBinding" bindingConfiguration="webBinding" behaviorConfiguration="jsonBehavior" contract="TVD_WCF_Services.ITestService" />
        <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="mexBinding" contract="IMetadataExchange" />
      </service>
    </services>
  </system.serviceModel>

  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>

Ich bin sicher, es ist etwas falsch mit der config, aber für das Leben von mir ich kann nicht herausfinden, was es ist. Beachten Sie, dass ich nicht geändert haben alles andere als die App.config so weit, so ich bin sicher das problem liegt.

Ich habe verschiedene andere Fragen im Zusammenhang mit diesem auf die Seite, aber ohne Erfolg.

Einen WCF-gurus da draußen, die helfen können?

InformationsquelleAutor Simon | 2012-01-24

Schreibe einen Kommentar