WCF, Der Vertragsname 'IMetadataExchange' wurde nicht gefunden

Ich wende einfach Code aus diesem Artikel an,

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

Ich habe nichts geändert, aber nach dem Surfen von IIS erhalte ich

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

Was vielleicht falsch sein kann, habe ich genauso wie der Link gemacht. Ich habe nach einer Antwort gesucht. Ich kann damit umgehen, indem ich hinzufüge

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

Aber ich möchte dies nicht hinzufügen, da beim Betrachten des Links msdn nicht hinzufügt. Was ist der Fehler?

Hier ist meine Konfigurationsdatei:

<?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>

Antworten auf die Frage(3)

Ihre Antwort auf die Frage