Při vývoji WCF služby ve verzi .NET 3.x jsme do konfiguračního souboru vložili definice jednotlivých endpointů a pokud jsme chtěli pozměnit některé vlastnosti bindingu, musel jsme nastavit atribut bindingConfiguration na název naší konfigurace. Na následující ukázce, chci využívat kódování MTOM u basicHttpBindingu:

   1: <configuration>
   2:   <system.serviceModel>
   3:     <bindings>
   4:       <basicHttpBinding>
   5:         <binding name="BasicWithMtom" messageEncoding="Mtom">
   6:         </binding>
   7:       </basicHttpBinding>
   8:     </bindings>
   9:     <services>
  10:       <service name="GreetingService">
  11:         <endpoint address="mtom" binding="basicHttpBinding"
  12:                   bindingConfiguration="BasicWithMtom"
  13:                   contract="IHello"/>
  14:       </service>
  15:     </services>
  16:   </system.serviceModel>
  17: </configuration>

Mnozí z nás ovšem správně upravili element basicHttpBinding, kde uvedli název, messageEnconding atd. ale zapomněli pak v definici služby uvést potřebný atribut bindingConfiguration. Ve verzi .NET 4.x se těchto chybiček snadno vyvarujeme, protože stačí pouze správně nastavit binding a v definici endpointu už nemusíme uvádět název toho nastavení u atributu bindingConfiguration. Nutnou podmínkou aby vše fungovalo správně je, že nesmíme pojmenovat takto upravený binding. Tedy z definice, kterou vidíte o pár řádků výše musíme odebrat tuto část kódu: name=”BasicWithMtom” !!!. Výsledný konfigurační soubor vypadá následovně:

   1: <configuration>
   2:   <system.serviceModel>
   3:     <bindings>
   4:       <basicHttpBinding>
   5:         <binding messageEncoding="Mtom"> <!-- BEZ ATRIBUTU NAME !!!-->
   6:         </binding>
   7:       </basicHttpBinding>
   8:     </bindings>
   9:   </system.serviceModel>
  10: </configuration>

Toto nastavení lze provést globálně pro všechny služby v souboru machine.config, nebo pouze pro konkrétní služby v jejich konfiguračních souborech.