mexHttpBinding - Ajoute un ServiceMetadataBehavior au fichier de configuration ou au ServiceHost directement pour permettre la prise en charge de ce contrat

Je sais que cela a été demandé de nombreuses fois, et a répondu à de nombreuses reprises, mais, tous les échantillons que devrait être de travail ne semblent pas vouloir travailler pour moi aujourd'hui.

Lorsque je tente de démarrer l'hôte, je reçois l'erreur suivante:

"Le contrat nom de "IMetadataExchange" ne peut pas être trouvé dans la liste des contrats mis en œuvre par le service TraceService. Ajouter un ServiceMetadataBehavior dans le fichier de configuration ou à l'ServiceHost directement pour activer le support de ce contrat".

Mon service est hébergé dans un service windows géré hôte comme par Microsoft exemple: http://msdn.microsoft.com/en-us/library/ms733069%28v=vs.90%29.aspx

Et voici ma belle et simple config:

  <system.serviceModel>
    <services>
      <service name="Daff.Lae.Service.TraceService">
        <endpoint address="" binding="wsHttpBinding" name="TraceService" contract="Contracts.Service.ITraceService">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8080/TraceService" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="DefaultBehavior">
          <serviceDebug includeExceptionDetailInFaults="true"/>
          <serviceMetadata httpGetEnabled="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

Bien sûr, le problème devient plus intéressant quand il n'y a pas d'erreurs si je supprime cette ligne:

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

Toute aide serait très très très grandement apprécié 🙂

source d'informationauteur agAus