Megosztás:


Több szerződés

A MultipleContracts-minta bemutatja, hogyan implementálhat több szerződést egy szolgáltatáson, és hogyan konfigurálhat végpontokat az egyes implementált szerződésekkel való kommunikációhoz. Ez a minta az első lépéseken alapul. A szolgáltatás úgy lett módosítva, hogy meghatározzon két szerződést, a ICalculator szerződést és a ICalculatorSession szerződést.

Megjegyzés:

A minta telepítési eljárása és összeállítási utasításai a témakör végén találhatók.

A szolgáltatásosztály mind a ICalculator, mind a ICalculatorSession szerződést implementálja. Mivel az egyik szerződés munkamenetet igényel, a szolgáltatás a PerSession példány móddal tartja karban az állapotot a munkamenet teljes élettartama alatt.

A szolgáltatáskonfiguráció úgy lett módosítva, hogy két végpontot definiáljon az egyes szerződések felfedéséhez. Az alapcímen jelenik meg a ICalculator végpont egy basicHttpBinding segítségével. A ICalculatorSession végpont a baseaddress/session cím alatt érhető el, egy wsHttpBinding használatával, amelynek a bindingConfiguration attribútuma BindingWithSession értékre van állítva, ahogyan az az alábbi mintakonfigurációban látható.

<service
    name="Microsoft.ServiceModel.Samples.CalculatorService"
    behaviorConfiguration="CalculatorServiceBehavior">
  <!-- ICalculator endpoint is exposed using BasicBinding at the base
       address provided by host:
       http://localhost/servicemodelsamples/service.svc  -->
  <endpoint address=""
            binding="basicHttpBinding"
            contract="Microsoft.ServiceModel.Samples.ICalculator" />
  <!-- ICalculatorSession endpoint is exposed using BindingWithSession
       at {baseaddress}/session:
       http://localhost/servicemodelsamples/service.svc/session -->
  <endpoint address="session"
            binding="wsHttpBinding"
            bindingConfiguration="BindingWithSession"
           contract="Microsoft.ServiceModel.Samples.ICalculatorSession" />
  ...
</service>

A létrehozott ügyfélkód mostantól az eredeti ICalculator szerződéshez és az új ICalculatorSession szerződéshez is tartalmaz ügyfélosztályt. Az ügyfélkonfiguráció és a kód úgy lett módosítva, hogy a megfelelő szolgáltatásvégponton kommunikáljon az egyes szerződésekkel.

Az ügyfél egy konzol windowsos alkalmazás (.exe). A szolgáltatást az Internet Information Services (IIS) üzemelteti.

Az ügyfélkonzol ablaka megjeleníti az egyes végpontoknak küldött műveleteket, először az alapvégpontot, majd a biztonságos végpontot.

A példa beállítása, elkészítése és futtatása

  1. Győződjön meg arról, hogy elvégezte a Windows Communication Foundation-minták One-Time beállítási eljárását.

  2. A megoldás C# vagy Visual Basic .NET kiadásának létrehozásához kövesse Windows Communication Foundation-mintákcímű témakör utasításait.

  3. Ha a mintát egy vagy több gép közötti konfigurációban szeretné futtatni, kövesse A Windows Communication Foundation-minták futtatásacímű témakör utasításait.