Нет необходимости реализовывать IMetadataExchange.Просто добавьте конечную точку:
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
Одна важная вещь, вы должны указать serviceMetadata
, иначе ваш IMetadataExchange
не будет найден:
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata />
</behavior>
</serviceBehaviors>
</behaviors>