Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A címzési minta a végpontcímek különböző aspektusait és funkcióit mutatja be. A minta az első lépéseken alapul. Ebben a mintában a szolgáltatás saját üzemeltetésű. A szolgáltatás és az ügyfél egyaránt konzolalkalmazás. A szolgáltatás több végpontot határoz meg relatív és abszolút végpontcímek kombinációjával.
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áskonfigurációs fájl egy alapcímet és négy végpontot határoz meg. Az alapcím a hozzáadási elem használatával van megadva, a service/host/baseAddresses területen, az alábbi mintakonfigurációban bemutatott módon.
<service name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service" />
</baseAddresses>
</host>
</service>
A következő mintakonfigurációban látható első végpontdefiníció egy relatív címet határoz meg, ami azt jelenti, hogy a végpontcím az alapcím és a relatív cím kombinációja az URI-összetétel szabályainak megfelelően.
<!-- Empty relative address specified:
use the base address provided by the host. -->
<!-- The endpoint address is
http://localhost:8000/ServiceModelSamples/service. -->
<endpoint address=""
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
Ebben az esetben a relatív cím üres (""), így a végpont címe megegyezik az alapcímmel. A tényleges végpontcím a következő http://localhost:8000/servicemodelsamples/service: .
A második végpontdefiníció egy relatív címet is megad, ahogyan az a következő mintakonfigurációban is látható.
<!-- The relative address specified: use the base address -->
<!-- provided by the host + path. The endpoint address is -->
<!-- http://localhost:8000/servicemodelsamples/service/test. -->
<endpoint address="/test"
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
A relatív cím ,,teszt", hozzá van fűzve az alapcímhez. A tényleges végpontcím a következő http://localhost:8000/servicemodelsamples/service/test: .
A harmadik végpontdefiníció egy abszolút címet határoz meg, ahogyan az az alábbi mintakonfigurációban is látható.
<endpoint address="http://localhost:8001/hello/servicemodelsamples"
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
Az alapcím nem játszik szerepet a címben. A tényleges végpontcím a következő http://localhost:8001/hello/servicemodelsamples: .
A negyedik végpontcím egy abszolút címet és egy másik átvitelt határoz meg – a TCP-t. Az alapcím nem játszik szerepet a címben. A tényleges végpontcím a következő net.tcp://localhost:9000/servicemodelsamples/service: .
<!-- The absolute address specified, different transport: -->
<!-- use the specified address, and ignore the base address. -->
<!-- The endpoint address is -->
<!-- net.tcp://localhost:9000/servicemodelsamples/service. -->
<endpoint address=
"net.tcp://localhost:9000/servicemodelsamples/service"
binding="netTcpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
Az ügyfél a négy szolgáltatásvégpont közül csak egyet ér el, de mind a négyet a konfigurációs fájlban definiálja. Az ügyfél kiválaszt egy végpontot az objektum létrehozásakor CalculatorProxy . A konfiguráció nevének CalculatorEndpoint1CalculatorEndpoint4 módosításával mindegyik végpontot kipróbálhatja.
A minta futtatásakor a szolgáltatás számba fogja venni az egyes végpontok címét, kötésnevét és szerződésnevét. A metaadat-exchange (MEX) végpont csak egy másik végpont a ServiceHost szempontjából, így megjelenik a listában.
Service endpoints:
Endpoint - address: http://localhost:8000/ServiceModelSamples/service
binding: WSHttpBinding
contract: ICalculator
Endpoint - address: http://localhost:8000/ServiceModelSamples/service/test
binding: WSHttpBinding
contract: ICalculator
Endpoint - address: http://localhost:8001/hello/servicemodelsamples
binding: WSHttpBinding
contract: ICalculator
Endpoint - address: net.tcp://localhost:9000/servicemodelsamples/service
binding: NetTcpBinding
contract: ICalculator
Endpoint - address: http://localhost:8000/ServiceModelSamples/service/mex
binding: MetadataExchangeHttpBinding
contract: IMetadataExchange
The service is ready.
Press <ENTER> to terminate service.
Az ügyfél futtatásakor a műveleti kérelmek és a válaszok megjelennek a szolgáltatás és az ügyfélkonzol ablakaiban is. A szolgáltatás és az ügyfél leállításához nyomja le az ENTER billentyűt az egyes konzolablakokban.
Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714
Press <ENTER> to terminate client.
A példa beállítása, elkészítése és futtatása
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.
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.
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.
Megjegyzés:
Ha a Svcutil.exe használatával hozza létre újra a minta konfigurációját, mindenképpen módosítsa az ügyfélkonfiguráció végpontnevét az ügyfélkódnak megfelelően.