WCF, no se pudo encontrar el nombre del contrato 'IMetadataExchange'

Simplemente estoy aplicando el código de este artículo,

http://msdn.microsoft.com/en-us/library/ms733766(v=vs.110).aspx

No cambié nada, pero después de navegar desde IIS obtengo

The contract name 'IMetadataExchange' could not be found in the list of contracts implemented by the service CalculatorService.  Add a ServiceMetadataBehavior to the configuration file or to the ServiceHost directly to enable support for this contract

Lo que puede estar mal, lo hice solo como el enlace. Busqué una respuesta. Puedo manejar agregando

  <behaviors>
      <serviceBehaviors>
        <behavior name="CalculatorServiceBehavior">
          <serviceMetadata httpGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

Pero no quiero agregar esto porque al mirar el enlace msdn no agrega. Cual es el error?

Aquí está mi archivo de configuración:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <service name="Microsoft.ServiceModel.Samples.CalculatorService">

        <!-- This endpoint is exposed at the base address provided by host:                                        http://localhost/servicemodelsamples/service.svc  -->
        <endpoint address=""
                  binding="wsHttpBinding"
                  contract="Microsoft.ServiceModel.Samples.ICalculator" />

        <!-- The mex endpoint is explosed at http://localhost/servicemodelsamples/service.svc/mex -->
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange" />
      </service>
    </services>
  </system.serviceModel>

</configuration>

Respuestas a la pregunta(3)

Su respuesta a la pregunta